ArrayList的综合案例-模仿外卖系统中的商家系统

要求:

测试类:

java 复制代码
package Y;

public class 模仿外卖系统中的商家系统 {
    public static void main(String[] args) {
        //1、设计一个菜品类Food

        //2、设计一个菜品操作类,FoodOperator 负责创建菜品对象,封装菜品数据
        FoodOperator e = new FoodOperator();
        e.start();
    }
}
复制代码
菜品类
java 复制代码
package Y;
/*
* 菜品类
* */
public class Food {
    private String foodName;
    private double foodPrice;
    private String desc;

    public Food() {
    }

    public Food(String foodName, double foodPrice, String desc) {
        this.foodName = foodName;
        this.foodPrice = foodPrice;
        this.desc = desc;
    }

    public String getFoodName() {
        return foodName;
    }

    public void setFoodName(String foodName) {
        this.foodName = foodName;
    }

    public double getFoodPrice() {
        return foodPrice;
    }

    public void setFoodPrice(double foodPrice) {
        this.foodPrice = foodPrice;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }
}
复制代码
菜品操作类:负责上架和浏览功能的实现
java 复制代码
package Y;

import java.util.ArrayList;
import java.util.Scanner;

/*
 * 菜品操作类:负责上架和浏览功能的实现
 * */
public class FoodOperator {
    //1、定义一个ArrayList集合对象,负责存储菜品对象信息
    private ArrayList<Food> foods = new ArrayList<>() ;
    //foods = []

    //2、开发更能,上架菜品功能
    public  void  addFood(){
        //3、创建一个菜品对象,封装商家的菜品信息
            Food f = new Food();
        //4、录入菜品信息进去
        Scanner sc = new Scanner(System.in);
        System.out.println("请您输入该菜品名称");
        String name = sc.nextLine();
        f.setFoodName(name);
        System.out.println("请您输入该菜品价格");
        double price = sc.nextDouble();
        f.setFoodPrice(price);
        System.out.println("请您输入该菜品描述");
        String desc = sc.next();
        f.setDesc(desc);
        //5、把菜品对象存入到集合中去
        foods.add(f);
        System.out.println("上架成功");
    }
    //6、展示菜品
    public void showFoods(){
        if (foods.size()== 0){
            System.out.println("什么菜品您都没有,请去上架");
            return;//拦截,底层的for不进行
        }
        for(int i = 0; i<foods.size(); i++){
            //把菜品对象交给Food类的变量记一下
            Food f = foods.get(i);//foods.get(i)是菜品对象
            System.out.println("菜品名:"+f.getFoodName());
            System.out.println("价格:"+f.getFoodPrice());
            System.out.println("详细信息:"+f.getDesc());
            System.out.println("--------------");
        }
    }

    //负责展示操作界面
    public void start() {
      while (true){
          System.out.println("请选择功能");
          System.out.println("1.上架菜品");
          System.out.println("2.展示菜品");
          System.out.println("3.退出");
          Scanner sc1 = new Scanner(System.in);
          System.out.println("请输入您的选择");
          int choice = sc1.nextInt();
          switch(choice){
              case 1:
                  addFood();
                  break;
              case 2:
                  showFoods();
                  break;
              case 3:
                  System.out.println("欢迎下次光顾!");
                  return;//return表示结束这个方法
              default:
                  System.out.println("您输入的命令不存在!,请重新输入");
          }
      }

    }
}
相关推荐
小羊先生car2 分钟前
RTOS-F429-HAL-(动/静态)任务的创建(2026/7/27)
开发语言·算法·c#
桐薇全肯定20 分钟前
MySQL学生成绩管理系统实战操作
java·数据库·sql
LONGZETECH30 分钟前
新能源汽车动力系统仿真硬核拆解:五系统分层架构的设计逻辑与技术权衡
c语言·开发语言·架构·汽车·汽车仿真教学软件·汽车教学软件
Nuanyt42 分钟前
SSM 学习记录 第二部分 Spring整合Mybatis&Junit AOP核心概念 Spring事务管理 SpringMVC 请求与响应 Rest风格
java·spring·junit·mybatis·restful
醉城夜风~1 小时前
C++模板详解:从基础到高级全面解析
java·开发语言·c++
地球驾驶员1 小时前
NX二次开发C#-获取体的外表面
开发语言·c#
誰能久伴不乏1 小时前
深入理解 C++ 多态:对象模型与底层机制解析
开发语言·c++·架构
Wang's Blog1 小时前
Go-Zero项目开发30: 微服务配置中心的设计与实现
开发语言·微服务·golang·go-zero
HH‘HH1 小时前
前端应用的离线暂停更新策略:原理、实现与最佳实践
开发语言·前端·php