Strong Root


문제


출력 결과는 무엇일까요?


1
2
3
4
5
6
7
8
9
10
11
12
13
public class Person {
    private String name;
    private int age;
    
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    
    public int getAge() {
        return age;
    }
}
cs



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class Test {
    static void increase(Person p, int weight) {
        p.age = 30;
        weight = 70;
    }
 
    public static void main(String[] args) {
        Person p = new Person("CGun"29);
        int weight = 60;
        
        increase(p, weight);
        
        System.out.println(p.age + ", " + weight);
    }
}
cs
















정답







해설


객체 변수는 Call by Reference 로 동작하므로 의도대로 값이 들어갔지만,


일반 변수는 Call by Value 로 동작하므로 increase 함수 내부 변수만 값이 증가하며

해당 함수가 종료되면 내부 변수는 증발한다.