Archiv verlassen und diese Seite im Standarddesign anzeigen : Instanzen von Unterklassen ... ?
Hallo,
ich habe eine KLasse in einer Klasse, von der ich von extern gerne eine Instanz erzeugen möchte.
class Klasse1
{
...
public class xyz
{
...
}
}
Leider bekomme ich da die Fehlermeldung:
"not an enclosing class"
wenn ich mittels
new Klasse1.xyz()
ein neues Objekt erzeugen will.
Weiß da jemand Rat?
Habt vielen Dank
Hmm...
Ist Klasse1 von der Stelle aus sichtbar? Ist immerhin nicht public.
Hat Klasse1 einen Standardkonstruktor? Wenn nein, kann kein Objekt der Klasse angelegt werden. Zu jeder Instanz einer inneren Klasse wird eine Instanz der umschliessenden Klasse erzeugt.
Hi,
natürlich:
eine innere Klasse braucht immer Bezug zu einer Instanz der äußeren Klasse, da sie Zugriff auf die Attribute der äußeren Klasse haben muß. Mit folgendem Code kannst du eine innere Klasse instanzieren:
Klasse1 aussen = new Klasse1(); // umgebende Klasse
xyz innere = aussen.new xyz(); // innere Klasse
(Klassennamen sind aus deinem Beispiel)
Die Klassennamen sollten natürlich großgeschrieben werden.
Jede Klasse bietet den new-Operator automatisch an, um aus inneren Klassen instanzen zu bilden.
Wo braucht man innere Klassen ?
> eine innere Klasse braucht immer Bezug zu einer Instanz der äußeren Klasse, da sie Zugriff auf die Attribute der äußeren Klasse haben muß.
Frage:
ist das nur in Java so od. auch in C++?
Ob das auch in C++ so ist, weiß ich nicht, Sinn machen würde es. Du kannst das ja mal dort ins Board stellen.
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.