인수가 전달되는 방식

Joseph Gordon-Levitt
풀어 주다: 2024-08-24 06:34:08
원래의
791명이 탐색했습니다.

인수를 메서드에 전달하는 두 가지 방법:

값별 호출:

  • 서브루틴의 형식 매개변수에 있는 인수 값을 복사합니다.
  • 메소드 내 매개변수에 대한 변경 사항은 원래 인수에 영향을 주지 않습니다.

참조 전화:

  • 값이 아닌 인수에 대한 참조를 전달합니다.
  • 매개변수에 대한 변경 사항은 호출의 원래 인수에 영향을 미칩니다.

기본 유형 통로:

  • 기본 유형(예: int 또는 double)이 전달되면 값별 호출이 사용됩니다.
  • 메서드는 인수의 복사본을 수신하므로 메서드 내에서 변경한 내용은 원래 값에 영향을 주지 않습니다.

예:

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에서 인수 전달은 값 또는 참조로 이루어질 수 있습니다. 기본 유형은 값으로 전달되는 반면 객체는 참조로 전달되므로 원래 인수에 다른 영향을 미칩니다.

Como os argumentos são passados

위 내용은 인수가 전달되는 방식의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!