더북(TheBook)

2.2.4 인스턴스 메서드 호출


다음 메서드 호출을 살펴보자.

fred.raiseSalary(5);


이 호출에서 인수 5raiseSalary의 매개변수인 byPercent를 초기화하는 데 사용되는데, 다음과 같은 할당에 해당한다.

double byPercent = 5;


이후 다음 동작이 일어난다.

double raise = fred.salary * byPercent / 100;

fred.salary += raise;


인스턴스 변수 salary는 메서드 호출에 사용한 인스턴스에 적용된다는 점을 명심하자.

1장 기본 프로그래밍 구조 끝부분에서 다룬 메서드들과 달리 raiseSalary 메서드는 클래스의 인스턴스에 작동한다. 이런 메서드를 인스턴스 메서드(instance method)라고 한다. 자바에서 static으로 선언하지 않은 메서드는 모두 인스턴스 메서드다.

코드에서 볼 수 있듯이 raiseSalary 메서드에는 값이 두 개 전달된다(메서드 호출을 받는 객체에 대한 참조와 호출 인수). 기술적으로는 둘 다 메서드의 매개변수이지만, 자바에서는 다른 객체 지향 언어처럼 첫 번째 값이 특별한 역할을 한다. 이 첫 번째 값을 메서드 호출의 수신자(receiver)라고도 한다.

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