我希望你能帮助我完成一个学校项目。我正在编写一个代码,用户可以在其中输入用户在橱柜中拥有的杂货。它还指定了产品的类型、名称、购买商店、标签、价格、数量——就像库存一样。我有一个类名称 Dairy,我可以为我需要的每个输入分别创建一个 getter。这工作得很好,我设置了它,有一个传递参数,当我在 InputDairy 方法中调用 getter 时,它工作得很好。
但是由于我向用户询问了很多关于产品的问题,我不想有 10 个 getter,有没有一种方法可以只拥有一个,然后传递参数?下面的代码是无效的,我尝试在一个 getter 中设置所有参数,然后一一传递参数。但这是行不通的。这是可能的还是我必须为我提出的每个问题设置一个 setter/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;
}
}
最佳答案
首先从用户那里获取所有答案,然后将它们在一行中传递给您的 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);
}
}
关于java - 只需一个 Setter 即可实现多个输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42521926/