我有以下代碼:爲什麼這個對象數組中的每個元素都被最後一個對象覆蓋?
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個,陣列中的每個元素都是一樣的第二位。當我在數組中有3個對象時,每個元素與第三個元素相同,等等。
我不知道爲什麼會發生這種情況,或者如何糾正它,並且它讓我困惑了幾個小時:/
猜猜靜態是什麼意思? – 2013-02-15 18:17:51
@JanDvorak啊很好的接觸,我正盯着這個,並且即將評論,代碼看起來很好。 – thatidiotguy 2013-02-15 18:18:28
http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html – BalusC 2013-02-15 18:18:36