2017-03-01 21 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 –