我正在尝试为游戏创建一个基本的“addPlayer”方法。该方法应该向玩家阵列添加“玩家”。
当前代码:
@Override
public void addNewPlayer(String name) {
Player one = new Player(name);
players.add(one);
}
我遇到的问题是,这只会创建一个播放器,因为第二个播放器的创建会导致第二个播放器与名称“one”相关联。
理想情况下,我想使Player对象的名称依赖于传入的参数“name”。这可能吗?
我正在使用Player对象为游戏命名和 int final identification 。也许我需要重新考虑那个设计?
答案 0 :(得分:2)
one
仅在方法范围中可见,当方法结束时,引用变量不再可访问。你可以改变
public void addNewPlayer(String name) {
Player one = new Player(name);
players.add(one);
}
到
public void addNewPlayer(String name) {
players.add(new Player(name));
}
请注意,这在功能上与您的版本完全相同。 players
(假设它是Collection
),可以包含多个Player
个实例。