기본형 매개변수
- 변수의 값을 읽기만 가능 (read only)
참조형 매개변수
- 변수의 값을 읽고 변경 가능 (read & write)
class Data {
int x;
}
class Ex {
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);
}
}
main() : x = 10
change() : x = 1000
After change(d.x)
main() : x = 10
class Data2 {
int x;
}
class Ex {
public static void main(String[] args) {
Data2 d = new Data2();
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(Data2 d) {
d.x = 1000;
System.out.println("change() : x = " + d.x);
}
}
main() : x = 10
change() : x = 1000
After change(d)
main() : x = 1000
참조형 반환타입
class Data3 {
int x;
}
class Ex {
public static void main(String[] args) {
Data3 d = new Data3();
d.x = 10;
Data3 d2 = copy(d);
System.out.println("d.x =" + d.x);
System.out.println("d2.x = " + d2.x);
}
static Data3 copy(Data3 d) {
Data3 tmp = new Data3();
tmp.x = d.x;
return tmp;
}
}
d.x = 10
d2.x = 10
- static 메서드 : 객체 생성없니 호출가능