我正在开发这个程序,在游戏结束时,我会问用户是否想再玩一次。如果他们同意了,我需要开始一个新的游戏。我创建了一个restart()方法:
public void restart(){
Game g = new Game();
g.playGame();
}然而,当我调用这个方法时,我的程序中的一些值仍然是它们在前一个游戏中的值。
有没有一个游戏可以清除所有的东西,然后用所有的默认值创建一个新的游戏实例?
发布于 2009-04-28 14:19:22
在没有更多信息的情况下,我猜测您的问题很可能是使用了静态变量,它的值将在给定类的所有实例中保持不变。如果你把它们都变成成员变量,并在你的构造函数中初始化它们,它应该可以工作。
发布于 2009-04-28 14:21:13
验证那些未重置的值是否已在Game构造函数中重置。很有可能他们不是。
这些值也是静态的吗?静态值不会被构造函数重置。
发布于 2009-04-28 14:23:07
你有没有静态变量?如果是,这很可能是问题所在。为您的类的新实例维护静态变量的值。您可以尝试移除static修饰符,并确保初始化类构造函数中的所有变量。
https://stackoverflow.com/questions/798184
复制相似问题