Zugriffsbeschränkung austricksen?
-
Hallöchen, ich lerne gerade Java stolpere über ein Problem. Ich habe folgende Klasse:
class SpielObjekt { public SpielObjekt() { position = new Point(rand.nextInt(40), rand.nextInt(10)); } public Point givePos() { return position; } private Point position; private static java.util.Random rand = new java.util.Random(); }
und stelle fest, dass ich die Position von außerhalb via
... SpielObjekt player = new SpielObjekt(); player.givePos().x = 80; ...
ungewollt/unerwünscht auf einen ungültigen Wert setzen kann. Wie kann ich das verhindern?
-
Mit einem Copy-Konstruktor:
public Point givePos() { return new Point(position); }
Oder indem Du in Point die x und y Koordinate als final deklarierst, so dass man sie nur einmal setzen kann.