728x90
반응형
이전 코드
public class Point { // public public double x; public double y; }
변경 후 코드
public class Point { // private private double x; private double y; // getter, setter public double getX() { return x; } public double getY() { return y; } public void setX(double x) { this.x = x; } public void setY(double y) { this.y = y; } }
public
클래스는 절대 가변 필드를 직접 노출해서는 안 된다. 불변 필드라면 노출해도
덜 위험하지만 완전히 안심할 수는 없다. 하지만package-private
클래스나private
중첩 클래스에서는 종종 (불변이든 가변이든) 필드를 노출하는 편이 나을 때도 있다.
참고 자료
Joshua Bloch, 『Effective Java 3/E』, 개앞맵시 옮김, 프로그래밍인사이트(2018)
http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788966262281&orderClick=LEa&Kc=
728x90
반응형
'Java' 카테고리의 다른 글
[Effective Java] 아이템 18. 상속보다는 컴포지션을 사용하라. (0) | 2022.05.24 |
---|---|
[Effective Java] 아이템 17. 변경 가능성을 최소화하라. (0) | 2022.05.24 |
[Effective Java] 아이템 15. 클래스와 맴버의 접근 권한을 최소화하라. (0) | 2022.05.24 |
[Effective Java] 아이템 14. Comparable을 구혈할지 고려하라. (0) | 2022.05.24 |
[Effective Java] 아이템 13. clone 재정의는 주의해서 진행하라. (0) | 2022.05.24 |