인수를 메서드에 전달하는 두 가지 방법:
값별 호출:
참조 전화:
기본 유형 통로:
예:
class Test { void noChange(int i, int j) { i = i + j; j = -j; } } class CallByValue { public static void main(String[] args) { Test ob = new Test(); int a = 15, b = 20; System.out.println("a and b before call: " + a + " " + b); ob.noChange(a, b); System.out.println("a and b after call: " + a + " " + b); } }
객체 통로:
객체가 메소드에 전달되면 Java는 참조별 호출을 사용합니다.
메소드는 객체에 대한 참조를 수신합니다. 이는 메소드 내에서 변경된 사항이 원래 객체에 영향을 미친다는 것을 의미합니다.
예:
class Test { int a, b; Test(int i, int j) { a = i; b = j; } void change(Test ob) { ob.a = ob.a + ob.b; ob.b = -ob.b; } } class PassObRef { public static void main(String[] args) { Test ob = new Test(15, 20); System.out.println("ob.a and ob.b before call: " + ob.a + " " + ob.b); ob.change(ob); System.out.println("ob.a and ob.b after call: " + ob.a + " " + ob.b); } }
change() 메서드 내 변경 사항은 인수로 전달된 ob 개체에 영향을 미칩니다.
기본 유형과 객체의 차이점:
기본 유형: 값으로 전달되며 메서드 변경 사항은 원래 값에 영향을 주지 않습니다.
객체: 참조로 전달된 메서드 변경 사항은 원본 객체에 영향을 미칩니다.
최종 요약:
Java에서 인수 전달은 값 또는 참조로 이루어질 수 있습니다. 기본 유형은 값으로 전달되는 반면 객체는 참조로 전달되므로 원래 인수에 다른 영향을 미칩니다.
위 내용은 인수가 전달되는 방식의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!