Hallo erstmal, ich habe absolut keine Idee wie ich den Titel hätte nennen sollen, und glaube nicht das der allzu treffend ist. Die Sache ist die, ich programmiere Grade für die Schule ein Hausaufgabensystem(als Hausaufgabe) und um das ganze etwas anspruchsvoller zu gestallten wollte ich das Objektorientiert machen. Soweit klappt das alles gut und das Grundgerüst steht schonmal.
Mein Problem ist, das ich mit einer While Schleife nach Lehrern, die in einer anderen Klasse gespeichert sind suchen möchte mittels Methodenaufruf. Diese Methode soll das Lehrer-Objekt per Return zurückgeben und die for-Schleife unterbrechen. Die Sache ist jedoch, das ich in der Auszuführenden Klasse die Methode in einer While Schleife aufrufe(ein Lehrer kann mehrere Aufgaben haben). Diese while-Schleife wird jedoch nicht unterbrochen, da ja bei jedem Methodenaufruf die Methode von vorne beginnt und dann immer die selbe Aufgabe findet und somit "hängen" bleibt. Ich hoffe es ist halbwegs verständlich erklärt.. Ich weiß was das Problem ist, jedoch nicht wie ich es sinnvoll im Sinne von Objektorientierung lösen könnte.
Hier der Methodenaufruf:
Hier die Methode in einer anderen Klasse:
Mein Ansatz wäre jetzt das ganze als 2D-Array zurückzugeben inklusive des Index-Wertes, wo die letzte Aufgabe gefunden wurde und diese dann beim erneuten Aufruf zu übergeben und dann in der for-Schleife statt i=0; ->> i=startindex; zu schreiben. Leider kann ich Objekte nicht in Arrays gemischt mit Int-Werten speichern oder? Meine 2. Idee wäre eine 2. ArrayList in der Methode getAufgabeByLehrer() zu erzeugen und am Ende der for-Schleife dann die ArrayList zurückzugeben und auf der "anderen Seite" diese Liste dann auszuwerten. Ist das sinnvoll oder kennt ihr vielleicht smartere Lösungen?
Danke im Voraus!
Mein Problem ist, das ich mit einer While Schleife nach Lehrern, die in einer anderen Klasse gespeichert sind suchen möchte mittels Methodenaufruf. Diese Methode soll das Lehrer-Objekt per Return zurückgeben und die for-Schleife unterbrechen. Die Sache ist jedoch, das ich in der Auszuführenden Klasse die Methode in einer While Schleife aufrufe(ein Lehrer kann mehrere Aufgaben haben). Diese while-Schleife wird jedoch nicht unterbrochen, da ja bei jedem Methodenaufruf die Methode von vorne beginnt und dann immer die selbe Aufgabe findet und somit "hängen" bleibt. Ich hoffe es ist halbwegs verständlich erklärt.. Ich weiß was das Problem ist, jedoch nicht wie ich es sinnvoll im Sinne von Objektorientierung lösen könnte.
Hier der Methodenaufruf:
Code:
int index = listLehrer.getSelectedIndex();
String aufgaben = "";
Lehrer lehrer = hs.getLehrerByIndex(index);
Aufgabe aufgabe;
while((aufgabe = hs.getAufgabeByLehrer(lehrer)) != null) {
aufgaben = aufgaben.concat(aufgabe.getAufgabenStellung());
System.out.println("hier");
}
taLehrer.setText("");
taLehrer.setText(aufgaben);
Code:
public Aufgabe getAufgabeByLehrer(Lehrer lehrer) {
for(int i = 0; i < aufgabeList.size(); i++) {
if(aufgabeList.get(i).getLehrer() == lehrer) {
return aufgabeList.get(i);
}
}
return null;
}
Mein Ansatz wäre jetzt das ganze als 2D-Array zurückzugeben inklusive des Index-Wertes, wo die letzte Aufgabe gefunden wurde und diese dann beim erneuten Aufruf zu übergeben und dann in der for-Schleife statt i=0; ->> i=startindex; zu schreiben. Leider kann ich Objekte nicht in Arrays gemischt mit Int-Werten speichern oder? Meine 2. Idee wäre eine 2. ArrayList in der Methode getAufgabeByLehrer() zu erzeugen und am Ende der for-Schleife dann die ArrayList zurückzugeben und auf der "anderen Seite" diese Liste dann auszuwerten. Ist das sinnvoll oder kennt ihr vielleicht smartere Lösungen?
Danke im Voraus!