我正在制作这个节目,在游戏结束时我会询问用户是否想再次播放。如果他们说是,我需要开始一个新游戏。我做了一个restart()方法:
public void restart(){
Game g = new Game();
g.playGame();
}
但是,当我调用此方法时,我的程序中的某些值保持在上一个游戏中的值。
是否有游戏只是清除所有内容并使用所有默认值创建游戏的新实例?
答案 0 :(得分:7)
如果没有更多信息,我猜你的问题很可能是你使用静态变量,其值将在给定类的所有实例中持续存在。如果将它们全部转换为成员变量并在构造函数中初始化它们,它应该可以工作。
答案 1 :(得分:1)
验证在Game构造函数中是否重置了那些未重置的值。他们可能不是。
这些值也是静态的吗?静态值不会被构造函数重置。
答案 2 :(得分:0)
你有静态变量吗?如果是的话,可能就是问题所在。为类的新实例维护静态变量的值。您可以尝试删除static修饰符,并确保初始化类构造函数中的所有变量。