getter가 반환 한 참조를 통해 개인 변수의 값을 변경할 수 있으면 setter 메서드를 무시하지 않습니까? getter-setter 및 개인 변수의 목적을 무효화하지 않습니까?Getter-Setter 및 전용 변수
public class Test{
private Dimension cannotBeChanged;
public Test(int height, int width)
{
if(height!=3)
cannotBeChanged.height = height;
if(width!=3)
cannotBeChanged.width = width;
}
public Dimension getDimension()
{
return cannotBeChanged;
}
public void setDimension(int height, int width)
{
if(height!=3)
cannotBeChanged.height = height;
if(width!=3)
cannotBeChanged.width = width;
}
public static void main(String [] args)
{
Test testOne = new Test(5,5);
Dimension testSecond = testOne.getDimension();
testSecond.height = 3; //Changed height and width to unwanted values
testSecond.width= 3;
}
잘 .. 당신은 실제 데이터를 변경하기 위해 다른 사람을 원하지 않는 경우, 당신은 방어 복사본을 사용해야합니다 .. 새로운 치수를 반환하십시오 (cannotBeChanged); (복사 생성자 ....) – TheLostMind
내 질문에 그런 어리 석고/간단한 질문에 대해 너무 많은 상향 보를 줄 수 있었으면 좋겠다. –