4장 클래스와 인터페이스

자바 언어의 심장 클래스와 인터페이스

추상 클래스 vs 인터페이스

스크린샷 2024-09-28 오후 2.09.35.png

클래스와 멤버의 접근 권한을 최소화하라

어설프게 설계된 컴포넌트와 잘 설계된 컴포넌트의 가장 큰 차이는 바로 클래스 내부 데이터와 내부 구현 정보를 외부 컴포넌트로부터 얼마나 잘 숨겼는냐다.

정보 은닉의 장점

모든 클래스와 멤버의 접근성을 가능한 한 좁혀야 한다.

톱레벨 클래스나 인터페이스를 public으로 선언하면 공개 API가 되며, package-private(default)으로 선언하면 해당 패키지 안에서만 사용할 수 있다. 패키지 외부에서 쓸 이유가 없다면 package-private로 선언하자.

클래스의 공개 API를 세심히 설계한 후, 그 외의 모든 멤버는 private으로 만들자.