Array von Objekten erzeugen
-
Leider bin ich noch nicht so mit Java bewandert, aber ich versuche momentan eine Array von Objekten zu erzeugen. Das heißt ich habe eine Zahl n und will n Objekte erstellen. Ein einzelnes Objekt erzeuge ich so:
Objekt Name = new Objekt();
Aber wie mach ich es bei einer Array von Objekten, meine C++ Kenntnisse haben mir leider nicht geholfen
Objekt Name = new[] Objekt();
Name[x].machwas();Obiges funktioniert leider nicht, ich habe leider komplett keine Ahnung, kann mir jemand helfen ?
-
Objekt Name []= new Objekt [4];
-
Und wie kann man dann dem Konstruktor Parameter übergeben
-
Damit erzeugst du lediglich ein Array. Für jedes Element des Arrays musst du new noch einmal aufrufen (diesmal mit Konstruktorparametern) also als Beispiel:
Name[0] = new Objekt(1,2,3); Name[1] = new Objekt(4,5,6); Name[2] = new Objekt(7,8,9); Name[3] = new Objekt(9,0,1);
-
Ok, danke
-
Hm, also wenn ich folgendes schreibe:
Square viereck [n]= new Square [n];
dann bekomme ich folgende Fehlermeldung:
']' expected
Ich benutze übrigens BlueJ unter Solaris. Wo liegt der Fehler
-
Michamab schrieb:
Wo liegt der Fehler
Das erste [n] muss ein [] sein.
-
omg, darauf hätte ich Idiot auch selber kommen können
-
Ok, noch eine etwas andere Frage, stell die mal hier um das Forum nicht zuzumüllen, also, ich habe nun in einer Klasse X ein neues Objekt (einer anderen Klasse Y) erstellt, beziehungsweise eine Array von Objekten. Nun habe ich aber eine andere Funktion dieser Klasse X, die nun all diesen Objekten neue Eigenschaften zuweisen will. Allerdings wenn ich dort nun schreibe:
name[n][r].macheWas();
... dann gibt er mir ne Fehlermeldung aus:
cannot resolve symbol - variable name
Kann mri jemand helfen, hilft mir eventuell das Schlüsselwort static weiter ? Ich benutze übrigens BlueJ unter Solaris
-
Ich will dir ja nicht Nachlässigkeit unterstellen aber ganz am Anfang hattest du dein Array Name genannt ... nun greifst du auf 'name' zu - das geht natürlich nicht
Wenn ich dich falsch verstanden habe so poste doch ein wenig Code und am besten auch gleich die Fehlermeldung mit
-
Ok, also wie gesagt, ich habe eine Klasse X, in der werden vom Konstruktor n Objekte einer anderen Klasse erstellt. In einer anderen Funktion dieser Klasse sollen dann die Eigenschaften dieser Objekte verändert werden:
// das hier ist eine vereinfachte Fassung class Pyramide { private int y; Pyramide (int y) { Square viereck[][] = new Square[y+1][y+1]; for(int n = y; n > 0; n--) { for(int r = n; r > 0; r--) { viereck[n][r] = new Square(); viereck[n][r].do_something(); this.y = y; } } } public void macheWas() { for(int n = this.y; n > 0; n--) { for(int r = n; r > 0; r--) { viereck[n][r].do_something(); // Hier kennt er das Objekt viereck nicht mehr ??? } } } }
-
Du willst außerhalb des Sichbarkeitsbereichs von "viereck" auf diese Variable zugreifen. Das geht natürlich nicht. Wenn du die Variable in mehreren Methoden nutzen möchtest, sollte sie vermutlich als Membervariable implementiert werden.
-
Würde ich ja auch machen, aber den Parameter für die Anzahl der Objekte bekomme ich ja erst im Konstruktor. Wie könnte man sowas machen ?
-
class Pyramide { private int y; private Square [][] viereck; Pyramide (int y) { viereck = new Square[y+1][y+1]; [...]
-
Ok, danke, wieder was gelernt