Hi,
Nun wird vom B die Methode tuwas() aufgerufen, die das A quasi löscht bzw. halt ein neues A ohne Array erzeugt.
Nein, gelöscht wird da überhaupt nichts - lediglich die lokale Variable a wird überschrieben.
Mein ich doch ;)
Wenn man nun aber nach diesem Aufruf das A ausgibt, dann ist es plötzlich das alte A! Es wird vom B nicht gelöscht, die Arraywerte sind erhalten geblieben. Wenn ich jedoch innerhalb von B das A nach dem Löschen ausgebe, dann ist das A gelöscht.
Wie kommt das?
Weil a in B eine lokale Variable ist.
Ja aber a ist doch eine Referenz oder nicht? Also müsste doch das Objekt selbst geändert werden und die Änderung auch noch bleiben, nachdem B beendet ist.
Wie erreiche ich es denn (eleganzt), dass das Objekt danach geändert bleibt?