Hallo zusammen,
ich stehe vor einem Problem, zu dem ich einfach keine Lösung finde. Ich versuche eine bidirektionale Muss-Assoziation zu programmieren, komme aber in der Main-Methode nicht weiter. Ich will diese Assoziation programmieren:

Mein Code ist:
Ich kann aber dann in der Main-Methode keine Objekte erstellen, da diese sich gegenseitig aufrufen müssen. Kann mir da einer weiter helfen?
ich stehe vor einem Problem, zu dem ich einfach keine Lösung finde. Ich versuche eine bidirektionale Muss-Assoziation zu programmieren, komme aber in der Main-Methode nicht weiter. Ich will diese Assoziation programmieren:

Mein Code ist:
Java:
package assoziation.schachpartie_spieler;
public class Schachpartie {
private String name;
private Spieler[] spieler;
public Schachpartie(Spieler s1, Spieler s2) {
setName(name);
anmelden(s1);
anmelden(s2);
s1.teilnehmen(this);
s2.teilnehmen(this);
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public Spieler[] getSpieler() {
return spieler;
}
public void anmelden(Spieler s) {
for (int i = 0; i < spieler.length; i++) {
if (spieler[i] == null) {
spieler[i] = s;
}
}
}
}
Java:
package assoziation.schachpartie_spieler;
import java.util.ArrayList;
public class Spieler {
private String name;
private final ArrayList<Schachpartie> partieListe = new ArrayList<>();
public Spieler(String name, Schachpartie p) {
setName(name);
addPartie(p);
teilnehmen(p);
}
public void setName(String name) {
this.name=name;
}
public String getName() {
return name;
}
public void addPartie(Schachpartie p) {
partieListe.add(p);
}
public ArrayList<Schachpartie> getPartieListe() {
return partieListe;
}
public void teilnehmen(Schachpartie p) {
p.anmelden(this);
}
}
Ich kann aber dann in der Main-Methode keine Objekte erstellen, da diese sich gegenseitig aufrufen müssen. Kann mir da einer weiter helfen?
Java:
package assoziation.schachpartie_spieler;
public class Main {
public static void main(String[] args) {
Schachpartie schachpartie1=new Schachpartie("Partie1", new Spieler("Hans"), new Spieler("Franz"));
}
}