Meine erste Klasse namens Match schafft ein individuelles Fußball-/Fußballspiel. Es bedeutet, dass Sie 2 Teams und das Endergebnis auswählen. Die zweite Klasse namens "Team" ist etwas fortgeschrittener. Wenn die Methode play (match match) aufgerufen wird, wird die Anzahl der gespielten Spiele um 1 erhöht. Dieser Teil funktioniert einwandfrei. Meine else if-Anweisungen für (goalsForThisMatch) funktioniert auch gut. Wenn ich jedoch das Team-Klassenobjekt überprüfe, sollte es die gleichen Ziele und Ziele anzeigen, die ich in der Match-Klasse eingegeben habe. Was tatsächlich passiert ist, wenn ich die Team-Klasse nach dem Drücken der Play (Match-Match) -Methode inspiziere, sind die meisten Methoden auf 0 gesetzt, mit Ausnahme der "gespielt" -Methode (die um eins erhöht wird) und unabhängig vom Endergebnis ist. Wenn ich also die Punktzahl in der Spielklasse eingegeben habe, so dass die Heimmannschaft mehr Tore erzielt und das Spiel gewonnen hat, wird die Won-Methode im Objektinspektor für die Team-Klasse um 1 erhöht. Ich brauche zwei der anderen Methoden in der Teamklasse, um mit der Spielklasse zu verlinken. Diese Methoden sind: Ziele für und Ziele gegen. Wenn ich die GoalsFor in der Match-Klasse auf "4" setze, sollte die TorsFor auch auf 4 gesetzt werden, wenn ich die Team-Klasse kontrolliere.Wie auf Variablen in einer anderen Klasse zugreifen?
Ich weiß, dass das alles klingt wahrscheinlich sehr verwirrend, bitte vergib mir, ich bin so müde, ich bin im Begriff, in den Schlaf gehen. Hoffentlich hätte jemand am Morgen dieses Problem für mich sortiert.
public class Match
// instance variables - replace the example below with your own
private String HomeTeam;
private String AwayTeam;
private int HomeGoals;
private int AwayGoals;
/**
* Constructor for objects of class Match
*/
public Match(String ShortHomeTeamName, String ShortAwayTeamName, int NewHomeGoals, int NewAwayGoals)
{
// initialise instance variables
HomeTeam = ShortHomeTeamName;
AwayTeam = ShortAwayTeamName;
HomeGoals = NewHomeGoals;
AwayGoals = NewAwayGoals;
}
public String getHomeTeamName(){
return HomeTeam;
}
public String getAwayTeamName(){
return AwayTeam;
}
public int getHomeGoals(){
return HomeGoals;
}
public int getAwayGoals(){
return AwayGoals;
}
}
public class Team
private String TeamName;
private String ShortName;
private int Played;
private int GoalsFor;
private int GoalsAgainst;
private int GoalDifference;
private int Won;
private int Drawn;
private int Lost;
private int Points;
/**
* Constructor for objects of class Team
*/
public Team(String FullTeamName, String ShortTeamName)
{
// initialise instance variables
TeamName = FullTeamName;
ShortName = ShortTeamName;
Played = 0;
GoalsFor = 0;
GoalsAgainst = 0;
GoalDifference = 0;
Won = 0;
Drawn = 0;
Lost = 0;
Points = 0;
}
public String getTeamName(){
return TeamName;
}
public String getShortName(){
return ShortName;
}
public int getPlayed(){
return Played;
}
public void getGoalsFor(int InsertGoalsFor){
GoalsFor = InsertGoalsFor;
}
public void getGoalsAgainst(int InsertGoalsAgainst){
GoalsAgainst = InsertGoalsAgainst;
}
public int getGoalDifference(){
return (GoalsFor - GoalsAgainst);
}
public int getWon(){
return Won;
}
public int getDrawn(){
return Drawn;
}
public int getLost(){
return Lost;
}
public int getPoints(){
return Points;
}
public void play(Match match){
Played++;
int GoalsFor = match.getHomeGoals();
int goalsForThisMatch = match.getHomeGoals();
int goalsAgainstThisMatch = match.getAwayGoals();
String homeTeam = match.getHomeTeamName();
String ShortName = match.getHomeTeamName();
if (ShortName.equals(TeamName)){
ShortName = homeTeam;
} else {
ShortName = match.getAwayTeamName();
}
if (goalsForThisMatch > goalsAgainstThisMatch){
Won++;
}
else if (goalsForThisMatch == goalsAgainstThisMatch){
Drawn++;
}
else {
Lost++;
}
}
}
Code-Überprüfung Artikel: viele Ihrer Variablennamen nicht folgen [Java Namenskonventionen] (http://www.oracle.com/technetwork/java/ Code-Konventionen-1 35099.html), wodurch Ihr Code schwieriger zu lesen ist. Bitte benennen Sie Variablen, die mit Kleinbuchstaben beginnen, so dass sie keine Klassennamen zu sein scheinen. –