Array von Objekten initialisieren?



  • Hi!
    Ich komm aus der C++ Ecke, also sorry wenn die Frage trivial ist:

    class TestClass
    {
    	public TestClass()
    	{
    		System.out.println("Ctor");
    	}
    }
    
    class test
    {
    	public static void main(String[] args)
    	{
    		TestClass[] foo = new TestClass[3];
    	}
    }
    

    Warum wird hier mit new TestClass[3] nicht automatisch der Ctor von TestClass aufgerufen (wie das z. B. in C++ sehr wohl der Fall ist)? Gibt es dafuer einen triftigen Grund? Warum muss ich jedes Arrayelement nochmal einzeln initialisieren? Bzw. muss ich das wirklich oder hab ich da was falsch verstanden? 🙂



  • Die Elemente des Arrays werden initialisiert und zwar mit null. In C++ übersetzt würde sich dein Array als TestClass* foo[] darstellen.



  • In Java gibts ja angeblich überhaupt keine Pointer. In Wirklichkeit sind aber alles Pointer. Und ein Array ist natürlich gleich mal ein Array von Pointern. Und die zeigen (wie schon gesagt) erstmal alle auf Null.

    Bye, TGGC (Wähle deine Helden)



  • *doppelpost*, sorry



  • thx fuer die Erklaerung 🙂
    Was ist denn die "Standard-Art" in Java das Array dann wirklich zu initialisieren? Reicht eine einfache for-Schleife ueber die Elemente mit einem

    foo[i] = new Foo();

    im Schleifenbody oder gilt sonst als "guter Ton" in Java?


Anmelden zum Antworten