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, istvarnull.Also ja, du musst die Variable mit
newinitialisieren. Allerdings musst du das nicht an der Stelle der Variablendeklaraion machen, sondern kannst es auch im Konstruktor vonTestoder 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
varzugreifst, währendvarnoch null ist (z.B.var.DoSomething()), bekommst du eine Exception um die Ohren gehauen.