2009-04-28 13 views
1

Ich arbeite an diesem Programm, wo ich am Ende des Spiels den Benutzer frage, ob sie wieder spielen möchten. Wenn sie ja sagen, muss ich ein neues Spiel beginnen. Ich machte einen Neustart() -Methode:Java: Zurücksetzen aller Werte im Programm

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

Jedoch, wenn ich diese Methode einige der Werte in meinem Programm Aufenthalt rufen Sie an, was sie während des vorherigen Spiels waren.

Gibt es ein Spiel, um einfach alles zu löschen und eine neue Instanz des Spiels mit allen Standardwerten zu erstellen?

+0

Können Sie mehr Code posten? Die Spielklasse? Die Klasse, die die restart() -Methode enthält? – Mark

Antwort

7

Ohne weitere Informationen, ich vermute, dass Ihr Problem wahrscheinlich ist, dass Sie statische Variablen verwenden, deren Werte für alle Instanzen einer bestimmten Klasse bestehen bleiben. Wenn Sie sie alle zu Member-Variablen machen und sie in Ihrem Konstruktor initialisieren, sollte es funktionieren.

1

Überprüfen Sie, ob die Werte, die nicht zurückgesetzt werden, im Game-Konstruktor zurückgesetzt werden. Wahrscheinlichkeiten sind sie nicht.

Sind diese Werte auch statisch? Statische Werte werden vom Konstruktor nicht zurückgesetzt.

0

Haben Sie statische Variablen? Wenn ja, ist es wahrscheinlich das Problem. Der Wert von statischen Variablen wird für neue Instanzen Ihrer Klasse beibehalten. Sie können versuchen, den statischen Modifikator zu entfernen und sicherzustellen, dass Sie alle Variablen im Klassenkonstruktor initialisieren.

Verwandte Themen