티스토리 뷰
Essential Language Skill/Effective Java
Item 16. public 클래스에서는 public 필드가 아닌 접근자 메서드를 사용하라
Jordy-torvalds 2019. 12. 11. 08:32클래스나 필드를 아무 이유 없이 public으로 선언한다면?
- 캡슐화의 이점을 제공하지 못함.
- API를 수정하지 않고는 내부 표현 수정 불가
- 불변식 보장 불가
- 외부에서 필드에 접근할 때 부수 작업을 수행할 수 없음
→ 필드의 접근 제한자를 public → private 변경 및 setter, getter 추가를 통해 패키지 외부에서 접근하는 클래스에게 접근자 제공.
- 주의사항.package-private 클래스 혹은 private 중첩 클래스라면 데이터 필드를 노출한다 해도 문제 없으며 그 클래스가 표현하는 추상 개념만 올바르게 표현하면 문제 없음. 클라이언트 코드가 클래스 내부 표현에 묶이기는 하지만, 클라이언트도 어차피 이 클래스를 포함하는 패키지 안에서만 동작하는 코드이기 떄문이다.
'Essential Language Skill > Effective Java' 카테고리의 다른 글
Item 17. 변경 가능성을 최소화하라 (0) | 2019.12.11 |
---|---|
Item 15. 클래스와 멤버의 접근 권한을 최소화하라 (0) | 2019.12.11 |
Item 14. Comparable을 구현할지 고려하라 (0) | 2019.12.11 |
Item 12. toString을 항상 재정의하라 (0) | 2019.12.11 |
Item 11. equals를 재정의하려거든 hashcode도 재정의하라 (0) | 2019.12.08 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Java
- POD
- Java Memory Structure
- k8s
- JVM
- Replication Controller
- Delete
- JMM
- kubernetes
- Effective Java
- 자바 메모리 구조
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함