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)에 해당한다.