Hi,
ich meine eigentlich verstanden zu haben, wann man einer Methode Parameter übergeben sollte, wie man mit denen handhabt und was man in den Konstruktor schreiben sollte, usw.
Aber jetzt hänge ich schon eine ganze Zeit lang an einem Problem:
Es gibt die Klassen Feld, Gitter, sowie ein Interface, das die Methoden von Gitter beinhaltet.
Ein Gitter besteht aus n*n Feldern.
(get-Methoden existieren natürlich auch)
Ich möchte noch in weiteren Methoden von Gitter die x- und y-Koordinaten verwenden.
Das Problem ist: Die Methoden für die Koordinaten übergeben den Wert nicht an die globalen Variablen x bzw. y. Ich vermute, dass es funktionieren würde, wenn ich dem Feld-Konstruktor die Parameter x und y hinzufüge und initialisiere. Aber ich will nicht jedes mal wenn ich eine Instanz von Feld erstelle, alle 3 Variablen angeben müssen. Das ist ja Quatsch, weil x und y von der feldnummer abhängig sind.
Meine andere Idee sah so aus:
Ohne die Methoden, dafür muss die Variable seitenLaenge dann static sein, was später zu neuen Problemen führt.
Das ich ein Interface implementieren soll, hab ich mir übrigens nicht selbst ausgedacht und bisher seh ich darin auch noch keinen Nutzen. Könnte dieses Interface irgendwie mein Problem lösen? Oder habt ihr andere Vorschläge?
ich meine eigentlich verstanden zu haben, wann man einer Methode Parameter übergeben sollte, wie man mit denen handhabt und was man in den Konstruktor schreiben sollte, usw.
Aber jetzt hänge ich schon eine ganze Zeit lang an einem Problem:
Es gibt die Klassen Feld, Gitter, sowie ein Interface, das die Methoden von Gitter beinhaltet.
Ein Gitter besteht aus n*n Feldern.
Code:
public class Feld {
private int feldNummer;
private int x;
private int y;
public Feld(int feldNummer) {
this.feldNummer = feldNummer;
public int xKoordinate(Gitter g) {
x = feldNummer % g.getSeitenLaenge() + 1;
return x;
}
public int yKoordinate(Gitter g) {
y = feldNummer / g.getSeitenLaenge() + 1;
return y;
}
}
Code:
public class Gitter implements Traceable {
private ArrayList<Feld> spielFeld = new ArrayList<>();
private int seitenLaenge;
public Gitter(int seitenLaenge) {
this.seitenLaenge = seitenLaenge;
for (int i = 0; i < (Math.pow(this.seitenLaenge, 2); i++) {
spielFeld.add(new Feld(i));
}
}
}
Ich möchte noch in weiteren Methoden von Gitter die x- und y-Koordinaten verwenden.
Das Problem ist: Die Methoden für die Koordinaten übergeben den Wert nicht an die globalen Variablen x bzw. y. Ich vermute, dass es funktionieren würde, wenn ich dem Feld-Konstruktor die Parameter x und y hinzufüge und initialisiere. Aber ich will nicht jedes mal wenn ich eine Instanz von Feld erstelle, alle 3 Variablen angeben müssen. Das ist ja Quatsch, weil x und y von der feldnummer abhängig sind.
Meine andere Idee sah so aus:
Code:
public Feld(int feldNummer) {
this.feldNummer = feldNummer;
this.x = feldNummer % Gitter.getSeitenLaenge + 1;
this.y = feldNummer / Gitter.getSeitenLaenge + 1;
}
Das ich ein Interface implementieren soll, hab ich mir übrigens nicht selbst ausgedacht und bisher seh ich darin auch noch keinen Nutzen. Könnte dieses Interface irgendwie mein Problem lösen? Oder habt ihr andere Vorschläge?