Java面向对象 --- 吃货联盟订餐系统(完整版)

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!

Java面向对象版本的吃货联盟订餐系统:

因为基础版本都在一个类中实现的功能,太过于麻烦,不清楚

,所以说我们利用面向对象制作吃货联盟订餐系统。

使用面向对象制作的优点:

1.更加具体化,把具体的事物抽象成类

2.易于理解,方便编写代码

3.安全性较高,经过封装代码后安全性提高

4.后期便于维护

划分类

======================================================================

我们进入代码编写,面向对象显著的特点就是将一个事物划分成为一类事物,从而更便捷的编写,我们思考:

首先要有订单,订单中有顾客的信息,那么我们将顾客的信息放在订单类中,顾客可以操作订餐等功能。

其次应该有餐厅,餐厅中由许多食物,我们继续划分

大概分为2类,菜品和饮品,那么我们抽象出具体的父类,菜品和饮品都在菜单上展示,所以,我们将菜单定为父类。

代码编写

=======================================================================

菜单类:

package com.oop.demo;

public abstract class Menu {

public abstract void show();//打印供选择的菜品/饮品信息

public abstract void add(int index, int num);//添加菜品/饮品

public abstract void check();//打印选择的菜品/饮品信息

}

菜品类(继承于菜单类):

package com.oop.demo;

/**

  • 菜品类,继承于菜单类

*/

public class Cuisine extends Menu{

/菜品名称/

private String[] cuisine_Names = {“鱼香肉丝”, “宫保鸡丁”, “糖醋里脊”, “糖醋排骨”, “小鸡炖蘑菇”, “红烧鱼”};

/菜品单价/

private double[] cuisine_Prices = {29, 30, 40, 45, 50, 60};

/选择菜品的名称/

private String[] choice_Cui_Names = new String[cuisine_Names.length];

/选择菜品的单价/

private double[] choice_Cui_Prices = new double[cuisine_Prices.length];

/选择菜品的份数/

private int[] num = new int[choice_Cui_Names.length];

/**

  • 打印供选择菜品的信息

*/

public void show() {

System.out.println(“菜品序号\t菜品名称\t菜品单价”);

for (int i = 0; i < cuisine_Names.length; i++) {

System.out.println((i + 1) + “\t” + cuisine_Names[i]

  • “\t” + cuisine_Prices[i]);

}

}

/**

  • 添加菜品

*/

public void add(int index, int num) {

for (int i = 0; i < choice_Cui_Names.length; i++) {

if (choice_Cui_Names[i] == null) {

choice_Cui_Names[i] = cuisine_Names[index - 1];

choice_Cui_Prices[i] = cuisine_Prices[index - 1];

this.num[i] = num;

break;

}

}

}

/**

  • 打印选择的菜品信息

*/

public void check() {

for (int i = 0; i < choice_Cui_Names.length; i++) {

if (choice_Cui_Names[i] != null) {

System.out.print(“\t” + choice_Cui_Names[i]

  • “\t¥” + choice_Cui_Prices[i] + "\t " + num[i]);

}

}

}

}

饮品类(继承于菜单类):

package com.oop.demo;

/**

  • 饮品类,继承于菜单类

*/

public class Beverage extends Menu{

/饮料名称/

private String[] beverage_Names = {“冰茶”, “红茶”, “绿茶”, “蜜雪冰城”, “矿泉水”, “牛奶”};

/饮料单价/

private double[] beverage_Prices = {1.5, 2.5, 2.5, 10.0, 9.0, 12.0};

/选择的饮品名称/

private String[] choice_Bvg_Names = new String[beverage_Names.length];

/选择的饮品单价/

private double[] choice_Bvg_Prices = {beverage_Prices.length};

/选择的饮品份数/

private int[] num = new int[choice_Bvg_Names.length];

/**

  • 打印供选择饮品的信息

*/

public void show() {

System.out.println(“菜单如下:”);

System.out.println(“饮品序号\t饮品名称\t饮品单价”);

for (int i = 0; i < beverage_Names.length; i++) {

System.out.println((i + 1) + “\t” + beverage_Names[i] + “\t¥”

  • beverage_Prices[i]);

}

}

/**

  • 添加饮品

*/

public void add(int index, int num) {

for (int i = 0; i < choice_Bvg_Names.length; i++) {

if (choice_Bvg_Names[i] == null) {

choice_Bvg_Names[i] = beverage_Names[index - 1];

choice_Bvg_Prices[i] = beverage_Prices[index - 1];

this.num[i] = num;

break;

}

}

}

/**

  • 打印选择的饮品信息

*/

public void check() {

for (int i = 0; i < choice_Bvg_Names.length; i++) {

if (choice_Bvg_Names[i] != null) {

System.out.print(“\t” + choice_Bvg_Names[i]

  • “\t¥” + choice_Bvg_Prices[i] + "\t " + num[i]);

}

}

}

}

订单类:

package com.oop.demo;

public class OrderForm {

private String name;//顾客昵称

private String tel;//顾客电话

private String addr;//顾客地址

Menu[] menu = new Menu[3];//初始化5个菜单信息

int[] states = new int[3];//订单状态

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getTel() {

return tel;

}

public void setTel(String tel) {

this.tel = tel;

}

public String getAddr() {

return addr;

}

public void setAddr(String addr) {

this.addr = addr;

}

}

顾客类:

package com.oop.demo;

import java.util.Scanner;

/**

  • 顾客类

*/

public class Customer {

Scanner sca = new Scanner(System.in);

OrderForm order_Form;

/**

  • 修改信息

  • @param name 昵称

  • @param tel 电话号码

  • @param addr 地址

*/

public void modify() {

if (order_Form.getName() == null) {

System.out.println(“您还没有注册信息!”);

} else {

System.out.println(“请输入您的旧昵称:”);

String name = sca.next();

System.out.println(“请输入您的旧电话号码:”);

String tel = sca.next();

System.out.println(“请输入您的旧送餐地址:”);

String addr = sca.next();

if (order_Form.getName().equals(name) && order_Form.getTel()

.equals(tel) && order_Form.getAddr().equals(addr)) {

System.out.println(“请输入新的昵称:”);

order_Form.setName(sca.next());

System.out.println(“请输入新的电话号码:”);

order_Form.setTel(sca.next());

System.out.println(“请输入新的送餐地址:”);

order_Form.setAddr(sca.next());

System.out.println(“修改成功~”);

} else {

System.out.println(“输入信息于原有信息不符,修改失败!”);

}

}

}

/**

  • 删除订单

*/

public void del() {

get();

if (order_Form.menu[0] != null) {

System.out.println(“请输入要删除的订单序号:”);

int num = sca.nextInt();

if (order_Form.states[num - 1] == 0) {

System.out.println(“您选择的订单未签收,不可删除!”);

} else {

for (int i = num - 1; i < this.order_Form.menu.length - 1; i++) {

this.order_Form.menu[i] = this.order_Form.menu[i + 1];

this.order_Form.states[i + 1] = this.order_Form.states[num - 1];

}

this.order_Form.menu[num - 1] = null;

System.out.println(“删除成功~”);

}

}

}

/**

  • 签收订单

*/

public void signFor() {

get();

if (order_Form.menu[0] != null) {

System.out.println(“请输入要签收的订单序号:”);

int num = sca.nextInt();

if (order_Form.states[num - 1] == 0) {

order_Form.states[num - 1] = 1;

System.out.println(“签收成功~”);

} else if (order_Form.states[num - 1] == 1) {

System.out.println(“订单已签收无需重复签收!”);

}

}

}

/**

  • 查看订单信息

*/

public void get() {

int count = 0;

if (order_Form.getName() != null) {

System.out.println(“订单人:” + order_Form.getName()

  • “\n送餐电话:” + order_Form.getTel()

  • “\n送餐地址:” + order_Form.getAddr());

}

if (order_Form.menu[0] != null) {

System.out.println(“订单序号\t所点食品\t食品价格\t所点数量\t订单状态”);

总结

至此,文章终于到了尾声。总结一下,我们谈论了简历制作过程中需要注意的以下三个部分,并分别给出了一些建议:

  1. 技术能力:先写岗位所需能力,再写加分能力,不要写无关能力;
  2. 项目经历:只写明星项目,描述遵循 STAR 法则;
  3. 简历印象:简历遵循三大原则:清晰,简短,必要,要有的放矢,不要海投;

以及最后为大家准备的福利时间:简历模板+Java面试题+热门技术系列教程视频

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!
order_Form.getName()

  • “\n送餐电话:” + order_Form.getTel()

  • “\n送餐地址:” + order_Form.getAddr());

}

if (order_Form.menu[0] != null) {

System.out.println(“订单序号\t所点食品\t食品价格\t所点数量\t订单状态”);

总结

至此,文章终于到了尾声。总结一下,我们谈论了简历制作过程中需要注意的以下三个部分,并分别给出了一些建议:

  1. 技术能力:先写岗位所需能力,再写加分能力,不要写无关能力;
  2. 项目经历:只写明星项目,描述遵循 STAR 法则;
  3. 简历印象:简历遵循三大原则:清晰,简短,必要,要有的放矢,不要海投;

以及最后为大家准备的福利时间:简历模板+Java面试题+热门技术系列教程视频

[外链图片转存中…(img-WP2WaLZL-1714694819717)]

[外链图片转存中…(img-GwUnTVKF-1714694819718)]

[外链图片转存中…(img-Rkq5oUFo-1714694819718)]

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!

  • 27
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值