Call By Value
- 메소드에 값(primitive type)을 전달 하는 것과 객체(reference type)를 전달한느 것에는 큰 차이가 있다.
- 메소드로 객체를 전달할 경우 메소드에서 객체의 객체변수값을 변경할 수 있게 된다.
// 값전달
class value_Plus{
public void num_plus(int count){
count ++;
//값을 전달 받았기 떄문에 반환타입이 없는 이상 값을 전달하지 않는다.
}
}
// 객체 변수
class ref_Plus{
public void num_plus(Num_class num_class){
num_class.num ++;
}
}
public class Num_class{
int num ;
public static void main(String[] args){
Num_class num_cl = new Num_class();
num_cl.num = 1;
value_Plus(num_cl);
System.out.println(num_cl.num);
ref_plus(num_cl);
System.out.println(num_cl); //1
value_Plus(num_cl);
System.out.println(num_cl.num); // 2
// 객체를 전달 할 경우만 값이 변경된다.