2014-12-05 80 views
0

我有一個類有11個變量,需要使用用戶提供的輸入來設置。這個類有以下構造函數和方法:在Java的構造函數中使用設置方法設置數據?

public class Sample { 

int id; 
Date date; 
String location; 
int sampleNum; 
(...) 
String[] keywords; 

public Sample() 
{ 
    keywords = new String[5]; 
    setData(); 
} 

public void setData() 
{ 
location = JOptionPane.showInputDialog(""); 
sampleNumber = Integer.parseInt(JOptionPane.showInputDialog("")); 
.... 
.... 
.... 
.... 
} 

這是因爲我有這樣的方法的另一個類:

public class SamplesList { 

Sample sample; 
boolean inUse; 
SamplesList next; //next element in SamplesList 
SamplesList prev; //previous element in SamplesList 

public SamplesList(){ 
    inUse = false; 
    next = null; 
    prev = null; 
} 

public void setSamples() 
{ 
int sampleNum = Integer.parseInt(JOptionPane.showInputDialog("")); 
for (int i = 1; i <= sampleNum; i++) 
    { 
    JOptionPane.showMessageDialog(null, "Data #"+i); 
    this.add(new Sample()); 
    //assuming SamplesList has a method add() that works exactly like an ArrayList. 
    } 
} 

我需要創建我需要通過輸入設置樣本並添加到列表中。但是,當我打電話給主要的一切。

public static void main (String args[]) 
{ 
    SamplesList sL = new SamplesList(); 
    sL.setSamples(); 
} 

sampleList因爲如果他們沒有被設置,已經添加了所需的列表,但與每一個變量元素的適量。

你能推薦我一些東西嗎?我知道在構造函數中使用方法是個壞主意D:

+0

大約一個小時前你不問這個問題嗎?你爲什麼要重新發帖? – EJK 2014-12-05 00:37:55

+0

因爲我給出的解釋不正確,所以我在發佈之後像7分鐘那樣刪除了舊的那個。 – RedSkull 2014-12-05 00:42:14

+0

確保一個類具有儘可能少的依賴關係是很好的設計。在你的發佈代碼中,你的類依賴Gui來設置它的值。班級根本不需要知道gui。相反,將值作爲參數傳遞給構造函數或設置其成員變量的類方法。 – 2014-12-05 00:46:50

回答

0

我建議在setSamples()中獲取字符串數組中的所有變量,然後使用該數組作爲參數調用構造函數。這樣你就可以在構造函數中設置樣本類中的所有變量值。

相關問題