- 자바의 정석 (기본편)을 참고했습니다.
- 복습을 위한 게시글입니다.
- 소스에 오타가 있을 수 있습니다. ^^:;
기본형 매개변수 예제 소스
기본형 매개변수는 값을 바꾸지 못하고 오직 읽기만 할 수 있다.
change() 메서드 실행 이후 받아온 매개변수 값을 1000으로 바꿨지만, 원본이 아닌 복사본의 값이 변경된 것이므로
d.x의 값은 여전히 10으로 찍혀나오는 것을 확인할 수 있다.
public class Ex6_6 {
public static void main(String args[]){
Data d = new Data();
d.x = 10;
System.out.println("main x는 ?" + d.x);
change(d.x);
System.out.println("After change(d.x)");
System.out.println("main x는?" + d.x);
static void change(int x){
x = 1000;
System.out.println("change x는 ?" + x);
}
}
}
class Data {
int x;
}
/* 결과
main x는 ? 10
change x는 ? 1000
After change(d.x)
main x는? 10
*/
참조형 매개변수 예제 소스
참조형 매개변수는 변수의 값을 읽을 수도 있고, 수정할 수도 있다.
기본형을 제외한 모든 변수는 참조형 매개변수이다.
참조형 매개변수는 인스턴스 주소를 넘겨주기 때문에 (원본을 넘기는 것이라고 할 수 있다) 넘겨받은 해당 인스턴스
내부(여기서는 Data 객체)의 값이 수정된 것이다.
public class Ex6_7 {
public static void main(String args[]){
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);
}
}
class Data {
int x;
}
/* 결과
main() : x = 10
change() : x = 1000
After change(d)
main() : x = 1000
*/
'JAVA' 카테고리의 다른 글
[JAVA 복습] 참조변수 super와 조상의 생성자 super() (0) | 2021.09.02 |
---|---|
[JAVA 복습] 상속에 대해 (0) | 2021.09.02 |
[JAVA 복습] 생성자 this() 와 객체 자신을 가리키는 참조변수 this (0) | 2021.08.31 |
[JAVA 복습] 기본 생성자와 매개변수가 있는 생성자 (0) | 2021.08.31 |
[JAVA 복습] 오버로딩 / 오버라이딩 비교 (0) | 2021.08.31 |