이펙티브 자바 16

참치돌고래·2021년 10월 31일
0

이펙티브 자바

목록 보기
14/21

public 클래스

잘못된 클래스

class Point{
    public double x;
    public double y;
    }

접근자와 변경자 메소드를 활용해 데이터를 캡슐화한다.

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 void setX(double x)
    { this.x = x;}
    public void setY(double y)
    { this.y = y;}
}

package-private 클래스 혹은 private 중첩 클래스라면 데이터 필드를 노출한다 해도 하등의 문제가 없다.

public 클래스는 절대 가변 필드를 직접 노출해서는 안된다. 불변 필드역시 가변 필드보다는 덜 하지만, 역시 안심할 수 없다.

profile
안녕하세요

0개의 댓글