Прохождение параметров функций в Java
Суммировать:
1. При передаче объекта (ссылка на объект) в качестве параметра передается ссылка (эквивалентно указателю). Другими словами, модификации, внесенные в параметры в функции, будут влиять на исходный объект.
2. При прохождении примитивного типа или обертывания набора примитивных типов в качестве параметров проходит значение. Другими словами, модификации, внесенные в параметры в функции, не будут влиять на исходную переменную.
3. При передаче массива (ссылка на массив)) в качестве параметра передается ссылка (эквивалентно указателю). Другими словами, модификации, внесенные в параметры в функции, повлияют на исходный массив.
4. Когда тип строки (ссылка) передается как параметр, это ссылка. Однако, когда будет сделана какая -либо изменение строки, будет сгенерировано новый объект строки, и значение исходного объекта строки не будет изменено. (Тем не менее, вы можете назначить ссылку на новый объект на исходную ссылку. Это дает людям поверхностное явление, которое изменился исходный объект, но он не изменился, но исходная ссылка на него указала на новый объект).
пакет StringTest; класс A {int a = 1; char b = 'a'; public a () {} public a (int _a, char _b) {this.a = _a; this.b = _b; } public String toString () {return "a ="+this.a+", b ="+this.b; / class.b = 'b'; возврат класса; } public Static String Changestring (String str) {System.out.println (str.hashcode ()); str = str.tolowercase (); System.out.println (str.hashcode ()); вернуть Str; } public static int changeInt (int a) {a = a+1; вернуть А; } public static integer informinteger (Integer a) {a = new Integer (9); вернуть А; } public static int [] changeIntArray (int a []) {a [0] = 10; вернуть А; } public static void printarray (int a []) {for (int i = 0; i <a.length; i ++) {System.out.print (a [i]+""); } System.out.println (); } public static void main (string [] args) {// Пользовательский объект передает ссылку a = new a (); A b = Changea (a); System.out.println (a); System.out.println (a); System.out.println (b); System.out.println("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- //The String object is also a reference as Параметр (но значение объекта строки не может быть изменено. Каждое измененное значение объекта будет воссоздать новый объект строки для сохранения модифицированного значения, и исходное значение не будет изменять) String Str1 = "Huualiang"; System.out.println (str1); System.out.println("---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- int int intb=changeint(inta); System.out.println (Inta); System.out.println (intb); System.out.println (intb); System.out.println ("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [] arrayb = changeintarray (Arraya); Результаты работы:
a = 2, b = b
a = 2, b = b
-------------------------
711139030
711139030
226046678
226046678
Хуалан
хуалананг
-------------------------
8
9
-------------------------
1
9
-------------------------
10 1 2 3
10 1 2 3
Спасибо за чтение, я надеюсь, что это поможет вам. Спасибо за поддержку этого сайта!