我刚在第一学期开始学习 Java,现在我有我的第一个项目,任务是为披萨店制作一个系统。我创建了一个 Menu 类,其中创建了一个名为 Menu 的数组列表。所以我希望披萨店员能够看到整个菜单(这部分已完成),但是任务还要求披萨店员查看当前订单并添加/删除订单。我已经制作了披萨对象并将它们添加到我的主类中的菜单中,如下所示:Pizza vesuvio = new Pizza("Vesuvio",57, 1, "tomatsauce, ost og oregano");menu.addPizza(vesuvio);然后我在“订购类”中创建了一个 userDialogue 方法,我想将 main 中的 PizzaNumber 设置为等于披萨店员输入的披萨编号。然后根据数量添加披萨。例如,让我们以 Vesuvio 为例,数字 (1) 是菜单上披萨的编号,因此如果披萨店输入 1,我希望它将 Vesuvio 添加到当前订单中。现在在我的订购类中,这是我的 userDialogueprivate 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); } } }总结一下:我能以某种方式将菜单上的披萨与顾客订购的披萨相匹配吗?
1 回答
拉莫斯之舞
TA贡献1820条经验 获得超10个赞
我注意到您的代码存在一些潜在问题:
您需要使用
new ArrayList<>();
而不是初始化您的ArrayListsnew ArrayList();
我对你如何调用
menu.addPizza()
和orderList.addPizza()
查看有点困惑,因为这两个都是 的实例ArrayList
,并且该类中不存在这样的方法。也许使用menu.add()
andorderList.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));
添加回答
举报
0/150
提交
取消