기본형 매개변수와 참조형 매개변수
자바에서는 매서드를 호출할 때 매개변수로 지정한 값을 메서드의 매개변수애 복사해거 넘겨준다. 매개변수의 타입이 기본형일때는 기본형 값이 복사되겟지만, 참조형이면 인스턴스의 주소가 복사된다.
기본형 매개변수 - 변수의 값을 읽기만 할 수 있다.(read only)
참조형 매개변수 - 변수의 값을 읽고 변경할 수 있다. (read & write)
ex>기본형 매개변수를 넘길때
class test{
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)");
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)
main() : x = 10
ex>class를 넘길때
class test{
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);
}
}
실행화면
main() : x = 10
change() : x = 1000
After change(x)
main() : x = 1000
ex>배열을 넘길때
class test{
public static void main(String[] args){
int[] x = {10};//크기가 1인 배열.x[0] =10;
System.out.println("main() : x = " + x[0]);
change(x);
System.out.println("After change(x)");
System.out.println("main() : x = " + x);
}
static void change(int[] x){//참조형 매개변수
x[0] = 1000;
System.out.println("change() : x = " + x);
}
}
main() : x = 10
change() : x = 1000
After change(x)
main() : x = 1000
배열과 객체는 참조변수를 통해 데이터가 저장된 공간에 접근하기때문에 값이 바뀐다.
'Others > 학교 공부' 카테고리의 다른 글
CISC와 RISC의 기술구조적 차이 (1) | 2013.03.24 |
---|---|
재귀호출 (0) | 2013.03.22 |
클래스와 변수 (0) | 2013.03.20 |
객체와 클래스-1 (0) | 2013.03.19 |
자바 개발환경 구축하기 (1) | 2013.03.18 |