Objekt selbst ertellen möglich?

japa

Aktives Mitglied
Wie kann ich eigentlich Objekte automatisch erstellen lassen? Also mit einer Schleife und mit richtigen Objektnamen?
Java:
		int anZahl = 3;
		Spieler spieler1 = new Spieler();
		Spieler spieler2 = new Spieler();
		Spieler spieler3 = new Spieler();
		
		for (int nummer = 1 ; nummer <= anZahl ; nummer++){
			//Kann man hier irgendwie die Objekte wie oben erstellen?
		}
 
Ja, aber nicht den Namen der Variablen dynamisch zuweisen.

Java:
 for (int nummer = 1 ; nummer <= anZahl ; nummer++){
            Spieler spieler = new Spieler();
        }

Du müsstest also sowas machen:

Java:
List<Spieler> spielerListe = new ArrayList<Spieler>();
 for (int nummer = 1 ; nummer <= anZahl ; nummer++){
            Spieler spieler = new Spieler();
            spielerListe.add(spieler)        
}

Wenn du den Spieler über die Nummer identifizieren willst musst du i im Spieler Object abspeichern:
Java:
 for (int nummer = 1 ; nummer <= anZahl ; nummer++){
            Spieler spieler = new Spieler();
            spieler.setNummer(i);
            // oder gleich Spieler spieler = new Spieler(i);
       }
 
Zuletzt bearbeitet von einem Moderator:
Java:
int anZahl = 3;
        Spieler[] spArr = new Spieler[anZahl];
        for (int nummer = 0 ; nummer < anZahl ; nummer++){
            spArr[i] = new Spieler();
        }
so was zb
 
Du kannst eine List verwenden, so z.B.:

Java:
int size = 3;
List<Spieler> playerList = new ArrayList<Spieler>();
for (int i = 0; i < size; i++) {
    playerList.add(new Spieler());
}
// ...
playerList.get(2); // gibt den 3. Spieler zurück, natürlich eher sinnvoll in Schleifen

Edit: och, zu spät.
 
Bei einer festgelegten Spielerzahl bietet sich auch ein normales Array an.

Java:
public class Feld {
    private final static int ANZAHL_SPIELER = 3;
    private Spieler[] spieler = new Spieler[ANZAHL_SPIELER];

    public Feld() {
        for(Spieler s: spieler) {
            s = new Spieler();
        }
    }
}
 
... nur wird dein Code nicht funktionieren. Die Referenz wird immer noch überall auf [c]null[/c] zeigen. Folgendes wäre korrekt:
Java:
public class Feld {
    private final static int ANZAHL_SPIELER = 3;
    private Spieler[] spieler = new Spieler[ANZAHL_SPIELER];
 
    public Feld() {
        for(int i = 0; i < spieler.length; i++) {
            spieler[i] = new Spieler();
        }
    }
}
 
... nur wird dein Code nicht funktionieren. Die Referenz wird immer noch überall auf [c]null[/c] zeigen. Folgendes wäre korrekt:
Java:
public class Feld {
    private final static int ANZAHL_SPIELER = 3;
    private Spieler[] spieler = new Spieler[ANZAHL_SPIELER];
 
    public Feld() {
        for(int i = 0; i < spieler.length; i++) {
            spieler[i] = new Spieler();
        }
    }
}

Ich habs erlaubt dein Code zu benutzen, es funktioniert und ist für mich am einfachsten zu verstehen, thx.

mfg an anderen
 

Zurück
Oben