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 |