개발/[스터디] 이펙티브 자바
아이템 16. public 클래스에서는 public 필드가 아닌 접근자 메서드를 사용하여라.
Dahee Joy Cha
2021. 12. 19. 18:28
개념
중첩 클래스
특정 목적을 위해 한 클래스에서 별도로 정의한 내부 클래스
참고: https://jobjava00.github.io/language/java/basic/nested-class/
원칙
1. public클래스(=패키지 바깥에서 접근할 수 있는 클래스)는 접근자를 제공한다.
1.1 왜 접근자를 사용해야할까?
- 내부 표현 방식을 언제든지 바꿀 수 있는 유연성이 생긴다.
- 필드를 공개할 경우 클라이언트가 이를 직접 사용하므로, 마음대로 바꿀 수 없어 유연성이 떨어진다.
1.2 클래스의 필드를 잘못 노출한 예시
1.2.1 java.awt.package의 Point 클래스
2. package-private 클래스 or private 중첩 클래스는 데이터 필드를 노출해도 문제가 없다.
책에서 이해 못한 부분
(103p) API를 변경하지 않고는 표현 방식을 바꿀 수 없고, 필드를 읽을 때 부수 작업을 수행할 수 없다.
-> 1. 표현방식을 바꾼다는 말이 무슨 말이지?
-> 2. 부수 작업은 어떤 내용을 이야기하는 걸까?