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("您输入的命令不存在!,请重新输入");
          }
      }

    }
}
相关推荐
m0_748236113 分钟前
Calcite Web 项目常见问题解决方案
开发语言·前端·rust
倔强的石头10611 分钟前
【C++指南】类和对象(九):内部类
开发语言·c++
ProtonBase15 分钟前
如何从 0 到 1 ,打造全新一代分布式数据架构
java·网络·数据库·数据仓库·分布式·云原生·架构
Watermelo61715 分钟前
详解js柯里化原理及用法,探究柯里化在Redux Selector 的场景模拟、构建复杂的数据流管道、优化深度嵌套函数中的精妙应用
开发语言·前端·javascript·算法·数据挖掘·数据分析·ecmascript
乐之者v21 分钟前
leetCode43.字符串相乘
java·数据结构·算法
半盏茶香1 小时前
在21世纪的我用C语言探寻世界本质 ——编译和链接(编译环境和运行环境)
c语言·开发语言·c++·算法
Evand J2 小时前
LOS/NLOS环境建模与三维TOA定位,MATLAB仿真程序,可自定义锚点数量和轨迹点长度
开发语言·matlab
LucianaiB2 小时前
探索CSDN博客数据:使用Python爬虫技术
开发语言·爬虫·python
Ronin3052 小时前
11.vector的介绍及模拟实现
开发语言·c++
计算机学长大白3 小时前
C中设计不允许继承的类的实现方法是什么?
c语言·开发语言