我刚在第一学期开始学习 Java,现在我有我的第一个项目,任务是为披萨店制作一个系统。我创建了一个 Menu 类,其中创建了一个名为 Menu 的数组列表。
所以我希望披萨店员能够看到整个菜单(这部分已完成),但是任务还要求披萨店员查看当前订单并添加/删除订单。我已经制作了披萨对象并将它们添加到我的主类中的菜单中,如下所示:
Pizza vesuvio = new Pizza("Vesuvio",57, 1, "tomatsauce, ost og oregano");
menu.addPizza(vesuvio);
然后我在我的“订购类”中创建了一个 userDialogue 方法,我想将 main 中的 PizzaNumber 设置为等于披萨店员输入的披萨编号。然后根据数量添加披萨。例如,让我们以 Vesuvio 为例,数字 (1) 是菜单上披萨的编号,因此如果披萨店输入 1,我希望它将 Vesuvio 添加到当前订单中。
现在在我的订购类中,这是我的 userDialogue
private ArrayList<Pizza> orderList = new ArrayList();
public void userDialogue() {
Scanner myScan = new Scanner(System.in);
System.out.println("Press 1 to add an order\nPress 2 to remove an order");
int answerDialog = myScan.nextInt();
if (answerDialog == 1) {
System.out.println("Type the costumers name");
costumerName = myScan.nextLine();
System.out.println("Type the pizza's number");
pizzaNumber = myScan.nextInt(); //These 3 lines is what im confused about. Can
if(pizzaFromMenu==pizzaNumber) {
orderList.addPizza(pizza);
}
}
}
总结一下:我可以以某种方式将菜单中的披萨与客户订购的披萨相匹配吗?
最佳答案
我注意到您的代码存在一些潜在问题:
您需要使用
new ArrayList<>();
初始化您的ArrayLists而不是new ArrayList();
我对你如何调用
menu.addPizza()
有点困惑和orderList.addPizza()
因为这两个都是ArrayList
的实例,并且该类中不存在这样的方法。也许使用menu.add()
和orderList.add()
相反?您可以使用
menu
中的披萨索引,而不是自己为每个披萨分配编号。 。例如,不要分配vesuvio
作为 1,使用 0(它是menu
中的索引,假设它是第一个添加到列表中的索引)。将披萨添加到
orderList
,您只需调用orderList.add(menu.get(pizzaNumber-1));
即可。同样,要删除使用orderList.remove(menu.get(pizzaNumber-1));
现在,您可以替换
if(pizzaFromMenu==pizzaNumber) {
orderList.addPizza(pizza);
}
与
orderList.add(menu.get(pizzaNumber-1));
关于Java项目-披萨作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58546137/