Call by Value & Call by ReferenceJava2022. 12. 10. 13:52
Table of Contents
728x90
728x90
값에 의한 전달 / 주소값에 의한 전달
Call by Value
// count의 값을 add에 넘겨 변경시키더라도 출력값엔 변화가 없다
// ( 값을 전달받았기 때문에 )
class Add {
void add(int count) {
count++;
}
}
class Counter {
int count = 0;
}
public class ExamMain {
public static void main(String[] args) {
Counter counter = new Counter();
System.out.println("더하기 전 : "+counter.count);
Add add1 = new Add();
add1.add(counter.count);
System.out.println("더한 후 : "+counter.count);
}
}
// Consonle
더하기 전 : 0
더한 후 : 0
Call by Reference
// int count → Counter counter
// 객체를 전달받도록 바꿈
// 객체 주소를 전달받았기 때문에 count값이 올랐다
class Add {
void add(Counter counter) {
counter.count++;
}
}
class Counter {
int count = 0; //
}
public class ExamMain {
public static void main(String[] args) {
Counter counter = new Counter();
System.out.println("더하기 전 : "+counter.count);
Add add1 = new Add();
add1.add(counter);
System.out.println("더한 후 : "+counter.count);
}
}
// Consonle
더하기 전 : 0
더한 후 : 1
728x90
300x250
@mag1c :: 꾸준히 재밌게
2023.04 ~ 백엔드 개발자의 기록
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!