Java: сброс всех значений в программе - PullRequest
1 голос
/ 28 апреля 2009

Я работаю над этой программой, где в конце игры я спрашиваю пользователя, хотят ли они играть снова. Если они скажут да, мне нужно начать новую игру. Я сделал метод restart ():

public void restart(){
    Game g = new Game();
    g.playGame();
}

Однако, когда я вызываю этот метод, некоторые значения в моей программе остаются на том же уровне, что и в предыдущей игре.

Есть ли игра, чтобы просто очистить все и создать новый экземпляр игры со всеми значениями по умолчанию?

Ответы [ 3 ]

7 голосов
/ 28 апреля 2009

Без дополнительной информации, я думаю, ваша проблема заключается в том, что вы используете статические переменные, значения которых будут сохраняться во всех экземплярах данного класса. Если вы превратите их в переменные-члены и инициализируете их в конструкторе, это должно сработать.

1 голос
/ 28 апреля 2009

Проверьте, сбрасываются ли те значения, которые не сбрасываются, в конструкторе Game. Скорее всего, они не.

Также эти значения статичны? Статические значения не сбрасываются конструктором.

0 голосов
/ 28 апреля 2009

Есть ли у вас статические переменные? Если да, то это скорее всего проблема. Значение статических переменных сохраняется для новых экземпляров вашего класса. Вы можете попробовать удалить статический модификатор и убедиться, что вы инициализируете все переменные в конструкторе класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...