Members

멤버 변수는 객체가 유지해야 하는 상태를 클래스 안에 보관한다

멤버 함수가 동작이라면 멤버 변수는 그 동작이 기준으로 삼는 데이터다. 상태는 캡슐화 규칙 안에서 관리되어야 한다.

상태 설계 기준

class state

상태 보관

객체가 자신의 현재 값을 기억해야 할 때 멤버 변수로 둔다.

접근 제한

대부분 private로 숨기고 메서드를 통해 검증된 변경만 허용한다.

초기화

생성자에서 의미 있는 기본 상태를 확실하게 만든다.

불변식

객체가 항상 지켜야 하는 조건이 깨지지 않도록 변경 경로를 통제한다.

initstatemethodguard
읽는 법

멤버 변수는 그냥 클래스 안 변수라기보다 객체의 약속을 지키는 상태다. 누가 언제 바꿀 수 있는지가 설계의 핵심이다.