private
, protected
, public
)를 제대로 활용하는 것이 정보 은닉의 핵심 !모든 클래스와 멤버의 접근성을 가능한 한 좁혀야 한다.
= 달리 말하면, 소프트웨어가 올바로 동작하는 한 항상 가장 낮은 접근 수준을 부여해야 한다는 뜻이다.
public
일 필요가 없는 클래스의 접근 수준을 package-private
으로 좁히자톱레벨(가장 바깥) 클래스와 인터페이스에 부여할 수 있는 접근 수준
<aside> 👉
public
: 공개 API가 됨. 하위 호환을 위해 영원히 관리해줘야 함package-private
: 패키지 외부에서 쓸 이유가 없다면 이거.
</aside>