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; }} public class referenceTest {public static a changea (클래스) {class.a = 2; class.b = 'b'; 반환 클래스; } public static string Changestring (String Str) {System.out.println (str.hashcode ()); str = str.tolowercase (); System.out.println (str.hashcode ()); Return str; } public static int changeint (int a) {a = a+1; 반환 a; } public static 정수 changeInteger (정수 a) {a = 새로운 정수 (9); 반환 a; } public static int [] changeIntArray (int a []) {a [0] = 10; 반환 a; } 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 매개 변수는 변형 된 값을 변경할 수 없습니다. 각 수정 된 문자열 객체 값은 수정 된 값을 저장하기 위해 새 문자열 객체를 재현합니다. System.out.println (str1); out.println (str2); 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
Huhualiang
Huhualianang
-----------------------------
8
9
-----------------------------
1
9
-----------------------------
10 1 2 3
10 1 2 3
읽어 주셔서 감사합니다. 도움이되기를 바랍니다. 이 사이트를 지원 해주셔서 감사합니다!