0

こんにちは、Java クイズをシミュレートするプログラムを作成しました。プログラムには 3 つのネストされたクラスがあります 最初のクラスはユーザー情報 (name id# など) を要求します すべてが提供された後、2 番目のクラスが呼び出されます このクラスは実際のクイズです ユーザーがすべての質問に答えるか、時間がなくなるとクイズは終了しますその時点で、3 番目のクラスがクイズの採点を行います。ユーザーが失敗した場合、ユーザーはボタンを押してもう一度クイズを受けることができます。再試行の選択肢が選択されると、試行を追跡する変数が 1 つ実装されます。ただし、問題は、ユーザーが何回試行したかを追跡する変数が消去されることです。これは、コードを記述した方法で、プログラムがクラス 1 から始まり、次にクラス 2 とクラス 3 に戻り、何らかの理由でクラスが 2 回目にリロードされると、変数は初期値に戻ります。変数が消去されないように変数を保存する方法はありますか? どんな助けでも大歓迎です。

4

3 に答える 3

2

クラスがリロードされたときにそこから読み取られるように、ファイルに値を書き込むことをお勧めします。

于 2012-12-07T15:51:59.537 に答える
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 に答える
0

クイズ情報のために、ディスク上にある種の永続性が必要です。ファイルの読み取りと書き込みを行うFileOutputStreamFileInputStreamを確認します。グーグルで検索すると、たくさんのチュートリアルがあります (このようなものです)。

于 2012-12-07T15:49:38.687 に答える