외부가 의존할 이름만 public
문서화된 사용 방법처럼 안정적으로 유지할 멤버에 붙인다.
접근 제어자는 멤버를 어디까지 열어 둘지 정하는 캡슐화 기준이다. 공개 표면은 작게, 필요한 확장 지점은 명확하게 남긴다.
자기 멤버로 자유롭게 사용
상속받아 그대로 호출 가능
객체 사용자에게 노출
부모 클래스 내부에서 사용
하위 클래스 구현에 허용
인스턴스 밖에서는 숨김
선언한 클래스 안에서만 사용
자식 클래스에도 직접 비공개
외부 직접 조작 차단
문서화된 사용 방법처럼 안정적으로 유지할 멤버에 붙인다.
하위 클래스가 재사용할 내부 상태와 훅을 제한적으로 열어 둔다.
값 검증과 상태 변경 규칙은 public 메서드를 통해 통제한다.