我正在尝试通过创建垄断银行家计划来学习Java和OOP。但是,我希望在退出程序后保存一些对象变量,这样在玩了一半的垄断游戏后,我可以退出程序,然后在保存所有玩家余额的情况下重新启动它。
我猜这需要某种数据库?
这是我的代码的一部分;我在退出程序后试图为所有对象(玩家)保存“balance”变量。
public class Monopoly {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
//creates the users (name classes)
players player1 = new players();
players player2 = new players();
players player3 = new players();
players player4 = new players();
while (true) {
player1.balance=player1.finalbalance;
player2.balance=player2.finalbalance;
player3.balance=player3.finalbalance;
player4.balance=player4.finalbalance;
答案 0 :(得分:3)
我只是序列化这个对象并在你恢复游戏后反序列化它。我认为这是最好的方式。在这里你可以找到如何做到这一点的方式。 http://www.tutorialspoint.com/java/java_serialization.htm
答案 1 :(得分:1)
也许我并没有真正了解你的问题,但是如果你需要一个方法来在程序退出之前赶上退出(例如CTRL-C),你就可以使用“退出钩子”,也可以自由连接
见
答案 2 :(得分:1)
虽然你当然可以使用数据库,但对于一个简单的离线游戏来说这将是一种过度杀伤力。在这种情况下,将游戏状态保存到文件(“存储游戏”)会更常见。
通过使用类ObjectOutputStream,您可以将对象写入文件。它将对象转换为一种格式,以后可以使用类ObjectInputStream读取。
答案 3 :(得分:0)
你必须将它保存到某个地方的文件中,这是在程序之间传递信息的唯一可靠方法。您需要确定保存文件的格式。查阅一些阅读/编写文件的教程,我相信它会有所帮助。