2017-03-01 30 views
0

我希望能幫助我一個學校項目。我正在編寫一個代碼,用戶在櫥櫃中輸入用戶的雜貨。它還指定了它是什麼類型的產品,名稱,它在哪裏被購買,標籤,價格,數量 - 就像一個庫存。我有一個類名Dairy,我可以爲每個需要單獨輸入的輸入創建一個getter。這工作得很好,我設置了它,有一個傳遞參數,當我在InputDairy方法中調用getter時,它工作得很好。只有一個安裝員的多個輸入

但是因爲我問用戶很多關於產品的問題,我不想讓10個getter有一種方法,只有一個,然後傳遞參數?這裏的代碼是非工作的,我嘗試在一個getter中設置所有參數,然後逐個傳遞參數。這不起作用。這是可能的,還是我必須爲每個問題設置一個getter?

public static void InputDairy (Dairy DairyProducts[], Fruit FruitProducts[], Scanner input){ // START OF INPUT DAIRY 

    System.out.println("Let's put in some DAIRY products"); 

    for (int i = 0; i < DairyProducts.length; i++){ 

     System.out.println("Enter name of DIARY product"); 
     String a = input.next(); 
     DairyProducts[i].setDairyData(a); 

     System.out.println("Enter Store where you bought DIARY product"); 
     String a = input.next(); 
     DairyProducts[i].setDairyData(b); 

     System.out.println("Enter how much you paid for DIARY product"); 
     String a = input.next(); 
     DairyProducts[i].setDairyData(c); 

     System.out.println("Enter when did you buy DIARY product"); 
     String a = input.next(); 
     DairyProducts[i].setDairyData(d); 
    } 

} // END OF INPUT DAIRY enter code here 


public class Dairy { 
    private String D_NameOfDairy; 
    private String D_NameOfStore; 
    private int D_PricePaid; 
    private int D_DayPurchased; 
    private int D_BestBefore; 
    private int D_AmountInGrams; 
    private int D_Pieces; 

    public Dairy() { 

     D_NameOfDairy = "Default name of dairy"; 
     D_NameOfStore = "Default name of store for dairy"; 
     D_PricePaid = 0; 
     D_DayPurchased = 01/01/2000; 
     D_BestBefore = 10/10/2010; 
     D_AmountInGrams = 0; 
     D_Pieces = 0; 
    } 

    public void setDairyData (String a, String b, int c, int d){ 

     D_NameOfDairy = a; 
     D_NameOfStore = b; 
     D_PricePaid = c; 
     D_DayPurchased = d; 

    } 

} 
+0

如果一個方法需要4個參數,那麼你應該只傳遞這四個參數。 –

回答

3

首先從用戶處獲取所有答案,然後將這些答案傳遞給一行中的setter函數。

public static void InputDairy (Dairy DairyProducts[], Fruit FruitProducts[], Scanner input){ 

    System.out.println("Let's put in some DAIRY products"); 

    for (int i = 0; i < DairyProducts.length; i++){ 

     System.out.println("Enter name of DIARY product"); 
     String a = input.next(); 

     System.out.println("Enter Store where you bought DIARY product"); 
     String b = input.next(); 

     System.out.println("Enter how much you paid for DIARY product"); 
     String c = input.next(); 

     System.out.println("Enter when did you buy DIARY product"); 
     String d= input.next(); 

     DairyProducts[i].setDairyData(a,b,c,d); 
    } 

} 
+0

OMG就是這樣一個簡單的解決方案!非常感謝,我現在可以看到我的錯誤。 – Ingrid

+0

很多時候事情比他們看起來更簡單。只需要找到一個方法。 :p –