책/이펙티브자바
Item 16 : public 클래스에서는 public 필드가 아닌 접근자 메소드를 사용하라
puzzling
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를 변경하지 않고는 표현 방식을 바꿀 수 없고,
필드를 읽을 때 부수 작업을 수행할 수 없다는 단점이 있다.
--> 책에서 언급한 내용인데 적절한 예시가 떠오르지 않아서 나중에 정리해봐야겠다.