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