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, istvar
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 vonTest
oder in einer beliebigen Methode dort machen.
Dort dann natürlich ohne Klassennamen davor:var = new MyClass();
Denn würdest du nochmalMyClass 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ährendvar
noch null ist (z.B.var.DoSomething()
), bekommst du eine Exception um die Ohren gehauen.