0

你好我写了一个模拟java测验的程序。该程序有 3 个嵌套类,第一类要求提供用户信息(姓名 id# 等),第二类称为此类是实际测验当用户回答所有问题或时间用完时,测验结束那一点第三班的测验得分。如果用户失败了,他可以按下一个按钮,允许他再做一次测验。when the try again choice is selected a variable that keep track of tries is implemented by one. 但是,问题是跟踪用户尝试了多少次尝试的变量被擦除了,因为我编写代码的方式程序从第 1 类开始,然后是第 2 类和第 3 类,并且出于某种原因当类第二次重新加载时,变量会回到它的初始值。有没有办法可以保存变量以使其不会被擦除?任何帮助都感激不尽。

4

3 回答 3

2

我建议在文件中写入值,以便在重新加载类时从那里读取。

于 2012-12-07T15:51:59.537 回答
0

您应该在磁盘上为您的测验信息保留某种持久性。检查FileOutputStreamFileInputStream以读取和写入文件。如果你用谷歌搜索的话,会有很多教程(比如这个。)

于 2012-12-07T15:49:38.687 回答
0

我假设你有类似的东西

public class A {    
    Object value;
    public void setValue(Object value) {
       this.value = value;
    }
    public Object getValue() {
       return value;
    }
}

因此,当您销毁一个实例并创建一个新实例时,该值就消失了。

作为一种学术解决方案,您可以将其value移至课堂级别。

所以它会是:

public class A {    
    static final Object[] values;
    static void setValue(Object value) {
       values[0] = value;
    }
    static Object getValue() {
       return values[0];
    }
}

这种方式value成员属于类而不是实例。

但不要现实生活中的应用程序中这样做。重新考虑你的设计。

于 2012-12-07T15:58:53.857 回答