?
SeppJ schrieb:
Weiterhin ist es relativ sinnlos, dies überhaupt zu wollen. Eine Zeile vorher hast du schließlich schon eine Reihe von Objekten angelegt:
this.array = new InnerClass[anzahl];
Das lässt this.array doch bereits auf eine Sammlung von anzahl InnerClass-Objekten verweisen. Diese dann nochmals einzeln erstellen zu wollen ist nicht nur unnötig, es macht überhaupt keinen Sinn.
Wenn dem so wäre, wär es schön.
Aber versuch mal dem value einen jeden Objekts im Array einen Wert zu geben, wenn du nur
this.array = new InnerClass[anzahl]
drinstehen hast.
Dann wirft dir die JVM eine null Pointer Exception, weil es die Objekte nicht gibt, wie der Debugger schnell aufzeigt.
Deswegen habe ich diese Schleife überhaupt erst eingebaut.
Das solltest du doch bereits da dran merken, dass du über die Objekte iterierst. Wieso solltest du sie dann noch einmal erzeugen, sie sind doch offensichtlich schon da!
Nein, ich iteriere nur durch ein Array, dass auf Objekte referenzieren kann.
Die Objekte gibt's aber noch nicht.
Das ist ähnlich:
Person per = new Person("Hans"); // Object ist vorhanden.
Person per2; // Es gibt nur ne Referenz, aber noch kein Objekt.
per.getName(); // geht
per2.getName(); // geht nicht -> zeigt nämlich auf null
Wie dem ein oder anderen vielleicht aufgefallen ist, ist die InnerClass mit dem Bezeichner static gekennzeichnet und somit statisch, also eine Klassenvariable.
Deine Beschreibung ist ungefähr das Gegenteil von dem, was static hier bedeutet. Vielleicht solltest du mal googeln, was eine static nested class ausmacht.
[/quote]
Sag du es mir.