Java
메서드 (call by value passing, call by reference passing)
Linda~!
2020. 3. 23. 10:45
static함수에서 heap변수를 사용할 수 없다.
값이 아닌 포인터이기 때문에 heap 의 영향 그대로 받음.
지역변수
package ch03;
class Data {
int num = 10;
}
public class MethodEx02 {
static int 증가(int num) {
num++;
System.out.println("증가 num : " + num);
return num;
}
static void 감소(Data d) {
d.num--;
System.out.println("감소num : " + d.num);
}
public static void main(String[] args) {
// call by value passing
int myNum = 100;
myNum = 증가(myNum);
System.out.println("myNum : "+ myNum);
// call by reference passing
Data data = new Data();
감소(data);
System.out.println("data.num : "+data.num);
}
}
값이 아닌 포인터이기 때문에 heap 의 영향 그대로 받음.
- value passing 의 값을 유지하고 싶을 때에는 return 하여 값을 반환해줘야 함.