bestimmen zu welchem Array ein Objekt "zugehört"

mr.cat

Mitglied
Hallo,
das ist mein erster Beitrag in einem Programmierforum, deshalb weiß ich nicht wie gut ich mein Problem schildere, ich bitte euch darauf Rücksicht zu nehmen, vielen Dank.

Also ich habe eine Klasse "Spieler".

Jetzt habe ich in meiner main Klasse zwei Arrays (identsiche Länge) erstellt, die jeweils "Spieler" generieren, der eine Array heißt Gegner, der andere Selber.

Nun habe ich eine Klasse "ball", und die hat eine Boolean Methode(wirdGefuehrt) die true ausgibt wenn das zur Prüfung übergebene Objekt tatsächlich den Ball "führt". Übergeben tue ich halt durch Gegner oder Selber, also ball.wirdGefuehrt(Gegner[5]) liefert true, falls Gegner[5] den Ball führt.

Kann ich jetzt irgendwie (das ist hier die Frage), wenn ich in der Mainklasse die Methode ball.wirdgefuehrt() aufrufe,
true oder false rausbekommen ohne einen GENAUEN (also ) Parameter) zu übergeben? Der Sinn ist einfach, dass die wirdgefuehrt Methode dann true liefern soll, sobald z.B. ein Spieler vom Gegner den Ball hat, es aber egal ist welcher Spieler.

Ich weiß wie ich es sonst lösen würde, halt eine for Schleife die alle 11 Objekte in Selber/Gegner durchgeht und immer checkt ob irgendein Gegner oder Selber den Ball führt, eine elegantere Möglichkeit würde mich interessieren.

:rtfm:

Danke
 
Zuletzt bearbeitet:
Mach aus den 11 Spielern ein Objekt Team. Dort kannst du dann die Methode istAmBall() implementieren.
 
Ein Observer würde hier auch gehen. Lass den Ball von den 22 Spielern "beobachten". Bei Besitzerwechsel, schickst du an alle eine Benachrichtigung.
 
Okay, danke für die beiden Vorschläge, es scheint also irgendwie keine Möglichkeit zu geben ein ball.wirdgefuehrt(Selber[0-10]) oder so ähnliches aufzurufen. Jetzt also eine extra Methode programmieren, die den "ball" kriegt und zurückgibt ob selber oder gegner am Ball ist (realisiert durch eine forschleife))
 
Du kannst natürlich
Code:
ball.wirdgefuerht(selber);
aufrufen. Dann verschwindet die for-schleife in die Methode. Ich würde da aber etwas Objektorientierter rangehen. Mach dir eine Klasse Team, die beinhaltet 11 Spieler (als Array oder List). Die Methode ob das Team den Ball führt würde ich dann auch in Team implementieren.
 
Du kannst natürlich
Code:
ball.wirdgefuerht(selber);
aufrufen. Dann verschwindet die for-schleife in die Methode. Ich würde da aber etwas Objektorientierter rangehen. Mach dir eine Klasse Team, die beinhaltet 11 Spieler (als Array oder List). Die Methode ob das Team den Ball führt würde ich dann auch in Team implementieren.

Würd es auch so machen. Und wenn es sowieso keine Rolle spielt, welcher Spieler direkt am Ball ist, dann würde ich die Klasse Team um eine ID erweitern. Und dem Ballobjekt nur die ID als Besitzer übergeben. So sparst du dir die Schleifendurchläufe.

Java:
class Team{

private ArrayList<Spieler> _sTeam;
private final String _sID = "FCJAVA";

....

}

class Spieler{

private String _sName;
private String _sSkillsLevel;

...
}



class Ball{
private String _sTID;
...
public boolean wirdgefuehrt(Team team){

return team.getID().equals(this._sTID);
}

}
 

Neue Themen


Zurück
Oben