본문 바로가기
Others/학교 공부

기본형 매개변수와 참조형 매개변수

by 언니팬더 2013. 3. 22.

 

기본형 매개변수와 참조형 매개변수
자바에서는 매서드를 호출할 때 매개변수로 지정한 값을 메서드의 매개변수애 복사해거 넘겨준다. 매개변수의 타입이 기본형일때는 기본형 값이 복사되겟지만, 참조형이면 인스턴스의 주소가 복사된다.
기본형 매개변수 - 변수의 값을 읽기만 할 수 있다.(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