Instanzierung Variablen Klasse



  • Hallo,

    muss man die Instanzvariablen eigentlich auch immer initialisieren ?

    class Test {

    private MyClass var = new MyClass();

    }

    oder geht auch das ? Wahrscheinlich nicht oder da ja kein Speicherplatz reserviert wird.

    class Test {

    private MyClass var;

    }



  • Also normalerweise machst du die Speicherzuweisung im Konstruktor. Keine Ahnung ob man das auch so machen kann.



  • Eine Instanz von einer Klasse erzeugst du so:

    ClassName InstanceName = new ClassName(pararmeter);
    


  • Wenn du private MyClass var; schreibst, ist var null.

    Also ja, du musst die Variable mit new initialisieren. Allerdings musst du das nicht an der Stelle der Variablendeklaraion machen, sondern kannst es auch im Konstruktor von Test oder in einer beliebigen Methode dort machen.
    Dort dann natürlich ohne Klassennamen davor: var = new MyClass();
    Denn würdest du nochmal MyClass var = new MyClass(); schreiben, wäre das eine zusätzliche, lokale Variable, die einfach nur denselben Namen trägt.

    Wenn du allerdings auf eine Methode von var zugreifst, während var noch null ist (z.B. var.DoSomething() ), bekommst du eine Exception um die Ohren gehauen.


Anmelden zum Antworten