Java项目-披萨作业

标签 java

我刚在第一学期开始学习 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);
            }
        }
    }

总结一下:我可以以某种方式将菜单中的披萨与客户订购的披萨相匹配吗?

最佳答案

我注意到您的代码存在一些潜在问题:

  1. 您需要使用new ArrayList<>();初始化您的ArrayLists而不是new ArrayList();

  2. 我对你如何调用 menu.addPizza() 有点困惑和orderList.addPizza()因为这两个都是 ArrayList 的实例,并且该类中不存在这样的方法。也许使用 menu.add()orderList.add()相反?

  3. 您可以使用 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/

相关文章:

java - 如何从 HashSet<ArrayList<Integer>> 打印出 ArrayList<Integer>?

java - 12 :xx shown as 00:xx in SimpleDateFormat. 格式 ("hh:mm:ss")

java - 如何交换子数组?

Java:查找字符串中的前 10 个单词。什么是最有效的算法?

java - 在另一个项目 Eclipse 中调用一个类

java - 在插入数据库期间如何同时启动和 sleep 多个线程

java.lang.IllegalStateException :Current user principal is not of type when i try to integrate keycloak with spring boot web + spring security project

java - Apache Camel 使用 Apache Camel 的 Spring WebFlux 功能性 Web Rest API

java - 每次工作后更新 IStatusLineManager 中的 IProgressMonitor()

java - Spring Security 记住我身份验证