-2

強化された for ループを使用して配列からデータを出力しようとしていますが、ゴミが表示されます。助けてください、よろしくお願いします。

ArrayList 配列 = 新しい ArrayList();

    //For loop to input names
    for(int i=0; i < 3; i++)
    {   
        System.out.print("Enter name of Player " + i +":");
        String startName = keyboard.nextLine();
        System.out.print("Enter jersey number of Player " + i +":");
        int playNum = keyboard.nextInt();
        startName = keyboard.nextLine();

        //Make objects and add to array
        HockeyPlayer p = new HockeyPlayer(startName, playNum);
        array.add(p);
    }
    keyboard.close();

ループのコードは次のとおりです。

System.out.println("The players are...");

        for(HockeyPlayer val : array)
        {
            System.out.println(val);
        }

このようなものが印刷されてしまいます...どうすれば修正できますか?

Please enter the names and jersey numbers of 3 hockey players.
Enter name of Player 0:Joeasdas
Enter jersey number of Player 0:213
Enter name of Player 1:Baskdja
Enter jersey number of Player 1:121
Enter name of Player 2:djasklaj
Enter jersey number of Player 2:455
The players are...
HockeyPlayer@3f84246a
HockeyPlayer@7c72cbb9
HockeyPlayer@549d1e83
4

3 に答える 3

0

デフォルトでは、クラスのtoStringメソッドObjectはクラス名とその他の数値を出力します。それをオーバーライドして、出力したいものを出力することができるので、単純に次のようにします。

  @Override 
   public String toString()
  { 
      return "returning something"; 
  }
于 2014-02-18T04:05:41.743 に答える
0

HockeyPlayer クラスの toString メソッドをオーバーライドする必要があります。例えば:

public String toString() {
    return  number+" "+name;
}
于 2013-10-12T08:30:01.757 に答える
0

HockeyPlayer@3f84246a は、toString メソッドをオーバーライドしていないことを示しています。HockeyPlayer で次のようなメソッドを宣言するだけです。

@Override 
public String toString()
{ 
  return "Your String"; 
}
于 2013-10-12T08:30:51.880 に答える