Slyh: Objekt löscht sich selbst

Beitrag lesen

Hallo,

import java.io.*;
class Test
{
    Blubb test;
    class Blubb {
      public Blubb() {
        test = null;

Hier setzt du zwar "test" auf null. Aber das ist es zu diesem Zeitpunkt
ohnehin noch, da du bis zu dieser Code-Zeile noch nirgends eine
Zuweisung _fertig_ durchgeführt hast.

if (test == null) {
          System.out.println("Null");
        }
        else {
          System.out.println("Objekt");
        }
      }
    }

Beachte die Reihenfolge.

public Test() {
      test = new Blubb();
    }

Zuerst wird "new Blubb()" ausgeführt, was einen Aufruf des Konstruktor
von "Blubb" nach sich zieht. Erst _nachdem_ der Konstruktor
zurückgekehrt ist, wird das neu erzeugte Objekt der Variable "test"
zugewiesen.

Es ist also alles so, wie's sein soll. :-)

Gruß
Slyh