Item 16 : public 클래스에서는 public 필드가 아닌 접근자 메소드를 사용하라
2021. 7. 15. 23:48
필드 접근방식에 대한 챕터이다.
우리는 클래스를 만들때
class Point{
public double x;
public double y;
}
이런식으로 public field 접근을 하는 것이 아닌
다음 처럼 getter나 setter와 같은 접근자를 만든다.
class Point{
private double x;
private double y;
public Point(double x, double y){
this.x = x;
this.y = y;
}
public double getX(){return x;}
public double gety(){return y;}
public double setX(double x){return this.x = x;}
public double sety(double y){return this.y =y;}
}
public 클래스의 필드가 불변이라면 직접 노출할 때의 단점이 조금은 줄어들지만
API를 변경하지 않고는 표현 방식을 바꿀 수 없고,
필드를 읽을 때 부수 작업을 수행할 수 없다는 단점이 있다.
--> 책에서 언급한 내용인데 적절한 예시가 떠오르지 않아서 나중에 정리해봐야겠다.
'책 > 이펙티브자바' 카테고리의 다른 글
Item 18 : 상속보다는 컴포지션을 사용하라 (0) | 2021.07.18 |
---|---|
Item 17 : 변경 가능성을 최소화 하라 (0) | 2021.07.16 |
Item 15 : 클래스와 멤버의 접근 권한을 최소화하라 (0) | 2021.07.14 |
Item 14 : Comparable을 구현할지 고려하라 (0) | 2021.07.13 |
Item 13 : clone 재정의는 주의해서 진행하라 (0) | 2021.07.12 |