1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class Data {
    int x;
}
 
class ReferenceParamEx {
    public static void main(String[] args) {
        // 항상 시작은 main부터 시작이 되며 Data타입이 존재하기 때문에 상단의 class가 Data가 존재해야 한다.
        // 이후 Data 클래스 안의 멤버변수안에 접근이 가능하다.
        // 멤버변수의 접근은 참조변수의 경우 인스턴스를 생성후에 접근을 해야 한다.
        // d.x를 통해 x의 값이 10으로 설정을 한다.
        // 이후 change()의 메소드를 실행하는데 자연스럽게 satic이 붙은 메소드가 실행이 되며 d.x=1000을 통해 전역변수의 
        //d.x의 값은 1000이 된다. 여기서 전역변수란 어디에서든지 접근이 가능하다는 소리임
        // 이후 change의 소환이 void로 반환이 안된상태에서 종료가 되고 이후 After가 소환이 된다.
        //최종적으로 main이 소환이 되며 d.x의 값은 기존의 1000이 출력되면서 종료하게 된다.
        Data d = new Data();
        d.x = 10;
        System.out.println("main():X=" + d.x);
 
        change(d);
        System.out.println("After change(d)");
        System.out.println("main():X=" + d.x);
    }
 
    static void change(Data d) {
        d.x = 1000;
        System.out.println("change():X=" + d.x);
    }
}
 
cs


'23.12.24 삭제예정 > 자바' 카테고리의 다른 글

기본형 매개변수와 참조형 매개변수의 차이점  (0) 2017.05.29
배열 메소드의 소환  (0) 2017.05.25
Super()-조상 클래스의 생성자  (0) 2017.05.01
오버라이딩의 조건  (0) 2017.05.01
자바-생성자  (0) 2017.04.27

+ Recent posts