더북(TheBook)

2.2.1 인스턴스 변수


직원 객체를 설명한 부분에서 직원 객체의 상태를 이름과 급여라는 값 두 개로 나타낸 것을 알 수 있다. 자바에서는 인스턴스 변수(instance variable)로 객체의 상태를 나타낸다. 인스턴스 변수는 다음과 같이 클래스 안에 선언한다.

public class Employee {

    private String name;

    private double salary;

    ...

}


이 선언은 Employee 클래스의 모든 인스턴스는 namesalary 변수를 가진다는 의미다.

자바에서는 인스턴스 변수를 보통 private으로 선언한다. private으로 선언하면 같은 클래스에 속한 메서드만 변수에 접근할 수 있다. 이런 보호가 바람직한 이유는 두 가지다. 프로그램의 어느 부분이 변수를 변경할 수 있는지 제어할 수 있고, 언제든지 내부 표현을 변경할 수 있다. 예를 들어 직원들을 데이터베이스에 저장하고 객체에는 오직 기본키(primary key)만 남겨 둘 수도 있다. 메서드를 이전과 똑같이 작동하도록 재구현하는 한 클래스의 사용자는 이런 변경을 개의치 않는다.

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