Java

3.3.6 값복사와 매개변수의 전달

by IT장인 posted Dec 28, 2013
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄


3.3.6 값복사와 매개변수의 전달

자바에서 메서드를 호출할 때 매개변수가 전달되는 방식은 전부 값복사의 기법을 이용하고 있다. 즉 값복사를 이용해서 매개변수를 전달한 후 메서드를 호출하는 것이다.

□ 매개변수의 전달
◇ 자바의 매개변수의 전달은 값복사의 기법만을 사용한다.
◇ 이것을 값에 의한 호출(Call By Value) 또는 값복사에 의한 호출이라고 한다.

다음 구문에서 값복사의 의미를 되새겨 보자.

▒ sumB() 메서드의 선언
 
int sumB(int x, int y){
         int c;
         c = x + y;
         return c;
 }

▒ 메서드의 호출
 
int a = 3;
int b = 4;
int c = sumB(a,b);

지금까지 배운 것을 기초로 해서 본다면 다음 3가지가 메서드를 호출할 때의 값복사에 해당한다.

□ 값복사의 예 I
◇ x = a; //메서드를 호출할 때 값복사 발생
◇ y = b; //메서드를 호출할 때 값복사 발생
◇ c = sumB(a,b); //메서드의 리턴값을 c의 메모리에 값복사

알고 보면 다음의 구문도 메모리로 데이터를 값복사하는 행위에 해당한다.

□ 값복사의 예 II
◇ int a = 3;
◇ int b = 4;
◇ c = x + y;

자바에서는 값복사의 기법만이 존재한다. 이후에 배우게 될 모든 매개변수의 전달이나 모든 할당은 값에 의한 복사(Value Copy)에 해당한다.