[Java]_함수 전 삼 의 의혹 과 사고
2541 단어 자바
1 void dfs(TreeNode node , int sum , ArrayList<Integer> curPath)
2 void dfs(TreeNode node , int sum , boolean ifExist)
문제: 1 번 에서 저 는 방법 에서 curPath 를 수정 할 수 있 습 니 다. 함수 호출 을 끝 낼 때 변수 수정 이 유효 합 니 다.
2 번 문제 에서 저 는 함수 에서 ifExist 를 수정 하 더 라 도 함수 호출 을 끝 낼 때 변수 수정 이 잘못 되 었 습 니 다.
질문: 자바 의 매개 변수 전달 방식 은?
해결: 다음 세 가지 상황 을 고려 합 니 다.
1、
double a = 10;
void tripleValue(double x)
x = 3 * x;
tripleValue(a);
상기 코드 가 실 행 된 후 a 의 값 은 변 하지 않 습 니 다.결론 1: 방법 은 기본 데이터 형식 (수치 형 과 불 형) 의 인 자 를 수정 할 수 없습니다.
2、
Employee a = new Employee("july");
void changeName(Employee x )
x.name = "alice";
changeName(a);
상기 코드 가 실 행 된 후 a 의 name 속성 은 alice 로 변경 되 었 습 니 다.결론 2: 방법 은 대상 매개 변수의 속성 을 바 꿀 수 있다.
3、
Employee a = new Employee("alice");
Employee b = new Employee("bob");
void swap(Employee p1 , Employee p2){
Employee temp = p1;
p1 = p2;
p2 = temp;
}
swap(a , b);
상기 코드 가 실 행 된 후에 도 a 는 alice 이 고 b 는 bob 입 니 다.결론 3: 방법 은 대상 매개 변수 가 새로운 대상 을 인용 하 게 해 서 는 안 된다.
따라서 자바 의 함수 전 참 은 모두 값 으로 전 달 됩 니 다.
함수 매개 변 수 를 기본 데이터 형식 으로 할 때 방법 매개 변 수 는 매개 변수 값 의 복사 본 을 받 습 니 다.
함수 매개 변수 가 대상 일 때 방법 매개 변 수 는 매개 변수 주 소 를 복사 하지만 원래 대상 에 대한 참조 도 아 닙 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.