ArrayList的综合案例-模仿外卖系统中的商家系统
需求:
完成菜品的上架、以及菜品信息浏览功能。
目标:
使用所学的ArrayList集合结合面向对象编程实现以上两个需求。
Food类:
package cn.ensource.arraylist;
public class Food {
private String name;
private double price;
private String desc;
public Food() {
}
public Food(String name, double price, String desc) {
this.name = name;
this.price = price;
this.desc = desc;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
FoodOperator类:
package cn.ensource.arraylist;
import java.util.ArrayList;
import java.util.Scanner;
/**
* 菜品操作类,负责对菜品上架、浏览的操作
*/
public class FoodOperator {
// 定义一个ArrayList集合对象,负责存储菜品对象信息
// 我们应该用一个数据库来装菜品信息
private ArrayList<Food> foodList = new ArrayList<>();
// 2. 开发功能,上架菜品功能
public void addFood() {
// 3. 创建一个菜品对象,封装上架的菜品信息
Food f = new Food();
// 4. 录入菜品信息
Scanner sc = new Scanner(System.in);
System.out.println("请您输入该菜品名称:");
String name = sc.nextLine();
f.setName(name);
System.out.println("请您输入该菜品价格:");
String price = sc.nextLine();
f.setPrice(Double.parseDouble(price));
System.out.println("请您输入该菜品描述:");
String desc = sc.nextLine();
f.setDesc(desc);
// 把菜品对象存入到集合中去
foodList.add(f);
System.out.println("上架成功!");
}
// 3. 展示菜品
public void showAllFoods() {
if (foodList.isEmpty()) {
System.out.println("什么菜品都没有,请先去上架菜品!");
return;
}
for (int i = 0; i < foodList.size(); i++) {
Food f = foodList.get(i);
System.out.println(f.getName() + " " + f.getPrice() + " " + f.getDesc());
}
}
// 负责展示操作界面
public void start() {
while (true) {
System.out.println("请选择功能:");
System.out.println("1. 上架菜品");
System.out.println("2. 展示菜品");
System.out.println("3. 退出");
Scanner sc = new Scanner(System.in);
System.out.println("请选择您的操作;");
String choice = sc.next();
switch (choice) {
case "1":
addFood();
break;
case "2":
showAllFoods();
break;
case "3":
System.out.println("下次再来哦!");
return; // 不要break,要用return;退出方法
default:
System.out.println("您输入的命令不存在!");
}
}
}
}
测试类:
package cn.ensource.arraylist;
import java.util.ArrayList;
public class ArrayListCase3 {
public static void main(String[] args) {
// 目标:完成拓展案例,商家菜品上架操作
// 1. 设置一个菜品类,负责创建菜品对象,封装菜品数据
// 2. 设计一个菜品操作类,FoodOperator, 负责完成对菜品的业务实现:上架和浏览信息
FoodOperator operator = new FoodOperator();
operator.start();
}
}