最近学完了oop基本语句和ArrayList常用用法,为了更好的熟悉知识与代码,写个小程序来巩固知识。打好基础,daydayup!
要求:完成菜品的上架、以及菜品信息浏览功能
思路分析:1,创建一个实体类(用于存放相关数据);2创建一个操作类用于实现上架菜品,菜品信息浏览功能;3,结合两个类,检测实验是否成功
创建三个变量名字(name),价格(price),描述(desc)设置成隐藏成员变量,并提供get/set方法,创建无参构造器。
public class Food {
private String name;
private double price;
private String desc;
public String getName() {
return name;
}
public Food() {
}
public Food(String name, double price, String desc) {
this.name = name;
this.price = price;
this.desc = desc;
}
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;
}
}
?创建的功能有三个,1,创建菜品;2,浏览菜品;3,功能界面
因为不清楚具体数值,所以创建ArrayList(合集),方便可以随时添加数据。通过实体类赋值数据,最后导入合集里。注:实体类的引用需要放进for循环里,因为合集里存的是实体类的引用地址,如果创建新数据时,实体类的引用地址不改变,会导致新数组替换老数据的现象。所以每次生成新数据时,都要重新创建实体类的引用。
public class FoodOperator {
private ArrayList<Food> q = new ArrayList();
public void Foodadd(){
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("要录几个菜,一次最多可以录9个菜");
System.out.println("请输入1-9之间的数字");
int n =sc.nextInt();
if(n>0 &&n <9){
for (int i = 0; i < n;i++) {
Food f = new Food();
System.out.println("请输入菜品名");
String name =sc.next();
f.setName(name);
System.out.println("请输入菜价格");
double price=sc.nextDouble();
f.setPrice(price);
System.out.println("请输入菜介绍");
String desc = sc.next();
f.setDesc(desc);
q.add(f);
System.out.println("上架成功");
}return;
}else{
System.out.println("输入的数字有误,请重新输入");
}
}}
直接遍历数据即可,但要注意,如果事先没存放数据,需要提醒输入数据。
public void Foodcheck(){
if (q.size()== 0){
System.out.println("你还没有输入数据");
}else {
System.out.println("信息如下:");
for (int i = 0; i < q.size(); i++) {
Food e =q.get(i);
System.out.println(e.getName());
System.out.println(e.getPrice());
System.out.println(e.getDesc());
System.out.println("--------------------");
}
}
}
功能有三个:1,进入添加模式,2,进入查看模式,3,退出
public void Operator(){
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("欢迎来到商家系统");
System.out.println("输入1进入添加模式");
System.out.println("输入2进入查看模式");
System.out.println("输入3退出");
int id = sc.nextInt();
switch (id){
case 1:
Foodadd();
break;
case 2:
Foodcheck();
break;
case 3:
return;
default :
System.out.println("请重新输入");
}
}
}
最后把三个功能放在一起即可
import java.util.ArrayList;
import java.util.Scanner;
public class FoodOperator {
private ArrayList<Food> q = new ArrayList();
public void Foodadd(){
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("要录几个菜,一次最多可以录9个菜");
System.out.println("请输入1-9之间的数字");
int n =sc.nextInt();
if(n>0 &&n <9){
for (int i = 0; i < n;i++) {
Food f = new Food();
System.out.println("请输入菜品名");
String name =sc.next();
f.setName(name);
System.out.println("请输入菜价格");
double price=sc.nextDouble();
f.setPrice(price);
System.out.println("请输入菜介绍");
String desc = sc.next();
f.setDesc(desc);
q.add(f);
System.out.println("上架成功");
}return;
}else{
System.out.println("输入的数字有误,请重新输入");
}
}
}
public void Foodcheck(){
if (q.size()== 0){
System.out.println("你还没有输入数据");
}else {
System.out.println("信息如下:");
for (int i = 0; i < q.size(); i++) {
Food e =q.get(i);
System.out.println(e.getName());
System.out.println(e.getPrice());
System.out.println(e.getDesc());
System.out.println("--------------------");
}
}
}
public void Operator(){
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("欢迎来到商家系统");
System.out.println("输入1进入添加模式");
System.out.println("输入2进入查看模式");
System.out.println("输入3退出");
int id = sc.nextInt();
switch (id){
case 1:
Foodadd();
break;
case 2:
Foodcheck();
break;
case 3:
return;
default :
System.out.println("请重新输入");
}
}
}
}
创建一个demo测试,点击运行
public class FoodDemo {
public static void main(String[] args) {
FoodOperator l = new FoodOperator();
l.Operator();
}
}
添加功能成功
浏览功能成功
退出功能成功
实验成功撒花!!!!!