Ich habe einen Java Class Point. Um schnell auf den Punkt (0, 0) zugreifen zu können, stelle ich eine Konstante dafür zur Verfügung.Warum können Werte eines endgültigen Objekts geändert werden?
public class Point{
//...
public static final Point NULLPOINT=new Point(0, 0);
//...
}
Doch diese Point.NULLPOINT.setX (x) noch funktioniert und ändert die NULLPOINT zu (x, 0). Gibt es einen Weg dies zu verhindern? Ich dachte, Final würde das verhindern, aber anscheinend habe ich seine Macht überschätzt.
Sie ändern nicht die Objektreferenz, aber ihre internen Eigenschaften – MadProgrammer
Das "final" -Tag bedeutet, dass die Variable NULLPOINT nicht so zurückgesetzt werden kann, dass sie auf einen anderen Punkt zeigt, nicht dass der Inhalt von NULLPOINT nicht geändert werden kann. – FredK