개념
중첩 클래스
특정 목적을 위해 한 클래스에서 별도로 정의한 내부 클래스
참고: 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. 부수 작업은 어떤 내용을 이야기하는 걸까?
'개발 > [스터디] 이펙티브 자바' 카테고리의 다른 글
[이펙티브자바]아이템27. 비검사 경고를 제거하라 (0) | 2022.01.02 |
---|---|
[이펙티브자바]아이템26. 로타입은 사용하지 말라 (0) | 2022.01.01 |
[책 요약]이펙티브자바 21~25 (0) | 2021.12.26 |
아이템 17. 변경 가능성을 최소화해라 (0) | 2021.12.19 |
아이템 15. 클래스와 멤버의 접근권한을 최소화하여라 (0) | 2021.12.19 |