Getter-Setter und private Variablen [duplizieren]

Diese Frage hat hier bereits eine Antwort:

Warum Getter und Setter / Accessors verwenden? [geschlossen 38 answersWas ist der Sinn der Setter und Getter in Java? [Duplikat 14 answers

Wenn ich den Wert einer privaten Variablen über eine vom Getter zurückgegebene Referenz ändern kann, wird die Setter-Methode dann nicht umgangen? Besiegt es nicht den Zweck von Getter-Setter und privaten Variable

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;
}

Antworten auf die Frage(5)

Ihre Antwort auf die Frage