Konstruktorproblem mit this()

Status
Nicht offen für weitere Antworten.
B

BratzeBritz

Gast
Warum ist folgendes nicht erlaubt ?

Code:
class ABC {

// Konstruktor ohne Parameter

ABC() {

 this(new XYZ(this));  // <----Fehler:Cannot refer to 'this' while explicity invoking a constructor ?????
}

// Konstruktor mit Parameter
ABC(XYZ xyz) {}

}

class XYZ {

XYZ(ABC abc) {}
}
[/code]
 

foobar

Top Contributor
Warum ist folgendes nicht erlaubt ?
Weil zum Zeitpunkt der Erstellung des Objekts schon auf die fertige Instanz zugreifen willst. Du kannst nicht mit this auf das Objekt zugreifen, weil es im Konstruktor gerade erst instanziiert wird.
 
B

BratzeBritz

Gast
thE_29 hat gesagt.:
Es stellt sich die Frage, warum du den Konstruktor sich selbst übergeben willst??

Im Konstruktor mit Parameter wird meine gesamte GUI initialisiert. Der Parameter ist meine Controler-Klasse, die ich in main instanziere(). Will mit dem parameterlosen Konstruktor den Controler automatisch erzeugen und dem parametrisierten Konstruktor übergeben!
 
G

Guest

Gast
foobar hat gesagt.:
Warum ist folgendes nicht erlaubt ?
Weil zum Zeitpunkt der Erstellung des Objekts schon auf die fertige Instanz zugreifen willst. Du kannst nicht mit this auf das Objekt zugreifen, weil es im Konstruktor gerade erst instanziiert wird.

Warum kann ich dann mit this. auf meine Membervariablen zugreifen ?
 

L-ectron-X

Gesperrter Benutzer
Weil diese Klasse bereits instanziiert wurde und somit die Membervariablen angelegt wurden.
this zeigt auf die aktuelle Instanz.
 

Weima

Mitglied
Wie wärs denn, wenn du eine Instanz von XYZ einfach einer Variablen zuweist???

wie:
Code:
class ABC{

XYZ controller;

ABC(){
  controller = new XYZ(this);
}
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben