私の最初のクラスはMatchと呼ばれ、個々のサッカー/フットボールゲームを作成します。 2チームと最終スコアを選ぶことができます。 「チーム」と呼ばれる第2のクラスはもう少し進んでいます。プレイ(マッチマッチ)メソッドが呼び出されると、再生されるゲームの数は1ずつ増加します。この部分は正常に動作します。私のelse if文(goalsForThisMatch)もうまくいきます。しかし、私がTeamクラスのオブジェクトを調べると、Matchクラスで入力したのと同じ目標と目標が表示されるはずです。実際に何が起こるかは、プレイ(マッチマッチ)メソッドを押した後にTeamクラスを調べると、メソッドのほとんどが0に設定されます(再生されたメソッド(1に増分されます)と最終スコアです。だからホームチームがより多くのゴールを決めて試合に勝利したので、チームクラスのオブジェクトインスペクタのWonメソッドが1ずつ上がることになります。他の2つのメソッドが必要ですマッチクラスにリンクするチームクラスでこれらの方法は次のとおりです。マッチクラスのGoalsForを「4」と入力すると、チームクラスを検査するときに、goalsForも4に設定する必要があります。別のクラスの変数にアクセスするには?
私はこのすべてがおそらく非常に混乱していると知っています、私を許してください、私はとても疲れています。うまくいけば、午前中に誰かが私のためにこの問題を分類していたでしょう。
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++;
}
}
}
コードレビュー項目:多くの変数名は[Java命名規則](http://www.oracle.com/technetwork/java/)に従いません。コーデックアクション-1 35099.html)、コードを読みにくくします。クラス名ではないように、小文字で始まる変数に名前を付けてください。 –