더북(TheBook)

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);


그러면 frede 매개변수로 복사한다(그림 2-3 참고). giveRandomRaise 메서드는 두 참조가 공유하는 객체를 변경한다.

098

▲ 그림 2-3 객체 참조의 사본을 담은 매개변수

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.