次のコードがあります。
public static void main(String[] args) {
Player players[] = new Player[2];
Scanner kb = new Scanner(System.in);
System.out.println("Enter Player 1's name");
players[0] = new Player(kb.nextLine());
System.out.println("Enter Player 2's name");
players[1] = new Player(kb.nextLine());
System.out.println("Welcome "+ players[0].getName() + " and " + players[1].getName());
}
これは、配列内のすべてのオブジェクトを保持しながら、新しいプレーヤー オブジェクトを作成し、プレーヤーの名前を格納するためのものです。
プレイヤークラスは次のとおりです。
public class Player {
static String name;
public Player(String playerName) {
name = playerName;
}
public String getName(){
return name;
}
}
実際に何が起こるかというと、オブジェクトが 1 つだけの場合は機能しますが、2 つある場合は配列内の各要素が 2 番目の要素と同じになります。配列に 3 つのオブジェクトがある場合、各要素は 3 番目などと同じです。
なぜこれが起こっているのか、またはそれを修正する方法がわかりません。何時間も私を困惑させてきました:/