잘 설계된 컴포넌트와 어설프게 설계된 컴포넌트의 차이는 내부 구현 정보를 외부로 부터 얼마나 잘 숨겼느냐다정보은닉, 혹은 캡슐화라고 하는 이 개념은 소프트웨어 설계의 근간이 되는 원리다. 기본원칙은 간단하다 모든 클래스와 멤버의 접근성을 가능한 좁혀야 한다. 자바의 접근제한자는 다음과 같다public : 모든 곳에서 접근 가능protected : 같은 패키지에서는 자유롭게 접근 가능 | 다른 패키지에 있는 경우에는 하위 클래스(상속 관계)에서만 접근 가능.package-private :같은 패키지 내에서만 접근 가능, 다른 패키지에서는 접근 불가능.private : 해당 클래스에서만 접근 가능멤버 접근성을 좁히지 못하게 방해하는 제약 한가지 있다. 상위 클래스의 메서드를 재정의할 때는 그 접근 수준을..