Also, ich hab folgende Frage zur OOP:
wenn ich in einer Klasse eine Variable(private), die einen nicht-primitiven Datentyp hat anlege und sie per getter lese, kann ich eigentlich dann auch in den übergebenen nicht-primitiven Datentyp schreiben, und hätte somit das private umgangen oder lieg ich da falsch? in Code tät ich es mir so vorstellen: (das ja in dem Fall auch funktioniert)
Code
public class Test
{
class Obj
{
public int x;
}
private Obj var = new Obj();
public Test()
{
var.x = 5;
}
public Obj getVar()
{
return var;
}
public static void main(String[] args)
{
Test t = new Test();
Obj o = t.getVar(); // t.var.x = 5
o.x=7; // t.var.x = 7
}
}
Alles anzeigen
Und das heisst, wenn ich einen nicht-primitiven Datentyp wirklich private machen möchte muss ich ihn im getter jedes mal clonen...?
Und noch eine Frage zu den Signaturen, in Java ist statt const final zu verwenden, auch wenn es nicht ganz das selbe ist, und readonly gibt es gar nicht.
Thomas