PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Instanzen von Unterklassen ... ?


BartS
07.05.2003, 15:16
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


DarkTom
08.05.2003, 13:31
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.

Halo
21.07.2003, 17:57
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.

Scavi
22.07.2003, 08:57
Wo braucht man innere Klassen ?

panzi
22.07.2003, 20:47
> 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++?

Halo
18.08.2003, 17:25
Ob das auch in C++ so ist, weiß ich nicht, Sinn machen würde es. Du kannst das ja mal dort ins Board stellen.