2.2.6 값을 사용한 호출
메서드에 객체를 전달하면 해당 메서드는 객체 참조의 사본을 얻는다. 메서드는 이 참조로 매개변수 객체에 접근하거나 매개변수 객체를 변경할 수 있다. 예를 들어 다음과 같다.
public class EvilManager {
private Random generator;
...
public void giveRandomRaise(Employee e) {
double percentage = 10 * generator.nextGaussian();
e.raiseSalary(percentage);
}
}
다음과 같이 호출한다고 하자.
boss.giveRandomRaise(fred);
그러면 fred를 e 매개변수로 복사한다(그림 2-3 참고). giveRandomRaise 메서드는 두 참조가 공유하는 객체를 변경한다.
▲ 그림 2-3 객체 참조의 사본을 담은 매개변수