2012-12-07 82 views
0

你好,我寫了一個模擬java測驗的程序。該程序有3個嵌套類第一類要求提供用戶信息(名稱ID#等)後全部提供第二個類被稱爲這個類是實際測驗測驗結束時,用戶回答所有問題或時間用完這一點,第三課評分測驗。如果用戶失敗,他可以按一個按鈕,讓他再次參加測驗。當再次嘗試選擇時,跟蹤嘗試的變量由一個實現。然而,問題在於跟蹤用戶嘗試了多少次嘗試的變量會被擦除,因爲我編寫代碼的方式從程序1開始,然後是第2類和第3類,出於某種原因當班級第二次重新加載時,變量回到其初始值。 有沒有一種方法可以保存變量,使其不會被擦除? 任何幫助將不勝感激。如何在重裝類後保持變量值

+0

您應該重新格式化您的問題的可讀性。將其分成幾段。另外,顯示一些代碼。 – Osiris

+0

我認爲一些持久性會幫助解決這個問題(通過序列化或數據庫) –

+0

我真的不想使用數據庫,我只是簡單的將變量保存在一個文件中,我只是想知道我是否可以在飛行中做某些事情。還是)感謝你的建議。 – rafaelzm2000

回答

2

我建議在文件中寫入值,以便當類重新加載時它將從那裏讀取。

+0

我已經有了一個學生信息的文件,只需要在那裏添加變量的值並在每次運行程序時從文件中讀取。我只是想知道是否有不同的方法..謝謝你的幫助 – rafaelzm2000

0

對於測驗信息,您應該在磁盤上擁有某種持久性。檢查FileOutputStreamFileInputStream以讀取和寫入文件。如果你的谷歌有很多教程(例如this one

+0

感謝您的鏈接我已經有方法來讀取和寫入文件,我只是想知道如果我可以做的方式,我wouldnt使用文件。我想我將不得不使用文件。 – rafaelzm2000

+0

@ rafaelzm2000沒問題。你的問題並不清楚你已經在使用文件了。一個友好的建議:下次確保你在你的問題中指定了所有必要的細節,這可能會幫助人們寫出更適合你需求的答案。 – Laf

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成員屬於類,而不是一個實例。

但是做不是它在現實生活中的應用程序。重新考慮你的設計。