OLD/자바
기본형 매개변수 VS 참조형 매개변수
몽블86
2017. 5. 25. 15:06
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 |