1

2 つの異なるチーム間の勝敗を記録するメソッドを作成するにはどうすればよいですか? これがチームオブジェクトとコンストラクターです。

public class NFLTeam4
{   private int win;
    private int loss;
    private String team;

public NFLTeam4(String teamName)
{   win = 0;
    loss = 0;
    team = teamName;
}
public NFLTeam4(int w, int l)
{   win = w;
    loss = l;
}
}

これは、ゲームに勝つ方法を作成する私の試みです。

public class NFLGameDay4{
   public static void main(String[] args){  
    NFLTeam4 falcons = new NFLTeam4("Falcons");
    NFLTeam4 chiefs = new NFLTeam4("Chiefs");
    NFLTeam4 jets = new NFLTeam4("Jets");
}       

public NFLTeam4 winAGame(NFLTeam4 b)
{   int win = 1;
    int loss = 0;
    return new NFLTeam4(win, loss);
}   
4

2 に答える 2

1

まず、あなたのNFLTeam4クラスはチームを代表する能力があるようです...

public NFLTeam4(String teamName) {   
    win = 0;
    loss = 0;
    team = teamName;
}

...またはチームの記録...

public NFLTeam4(int w, int l) {   
    win = w;
    loss = l;
}

両方ではありません。前もってチーム名を提供し、後でレコードを変更する方法はありません。これを修正する (それによってチームの記録を管理できるようにする) には、2 番目のコンストラクター ( int w, int l1 つ) を削除し、記録の変更を処理する 2 つのメソッドを作成することを検討してください。

public void addWin() { 
    ++win;
}

//similar code for addLoss

おそらく、などのメソッドを追加したいと思うでしょうgetWinCount。何を追加し、どのようにコーディングするかはあなた次第です。

これで、提供されたチーム ( )winAGameを呼び出すだけで済みます。addWinNFLTeam4 b

于 2012-10-04T03:15:29.080 に答える
0

クラスMap内で結果を作成できます。NFLTeam4

public class NFLTeam4
{
  private enum RESULT { WIN, LOSS };
  private Map<RESULT, List<NFLTeam4>> results = new HashMap<RESULT, ArrayList<NFLTeam4>>;
  // you can leave the constructor and other variables as they are

  public void winAGame(NFLTeam4 b) {
    win = win + 1;
    // Now check and add to your results map 
    // you will need to make sure your map is initialised properly
    results.get(RESULT.WIN).add(b);
  }
}

NFLTeam4 オブジェクトでゲームの勝敗の動作をカプセル化しています。列挙型を拡張してRESULT、結果の日付、ゲーム番号、会場などに関する情報を含めることもできます。

これは、これがどのように機能するかを示す単なる例です。要件に照らして、オブジェクトがどのように設計されているかを検討する必要があります。

于 2012-10-04T03:15:03.500 に答える