面向对象–西餐厅(基础实现)

主要训练自己的面向对象编程的思维,不做深入实现,仅实现大概功能

主函数

package com.situ.chapterwork;public class Main { public static void main(String[] args) {Restaurant re = new Restaurant();re.start();}}

餐厅类

package com.situ.chapterwork;import java.util.Scanner;public class Restaurant {private String name = "西餐厅";Waitter w = new Waitter();Steak s = new Steak();Scanner sc = new Scanner(System.in);public void start() {menu();}private void menu() {// TODO 自动生成的方法存根while(true) {System.out.println("1.牛排 2.服务员 3.退出");System.out.println("请选择操作:");int choice = sc.nextInt();if(choice == 1) {s.smenu();}else if(choice == 2) {w.wmenu();}else {System.out.println("感谢使用!");break;}}}
}

服务员类

package com.situ.chapterwork;import java.util.ArrayList;
import java.util.Scanner;public class Waitter {private String name ;private String sex;private int price;Scanner sc = new Scanner(System.in);ArrayList<Waitter> elist = new ArrayList<Waitter>();public void wmenu() {// TODO 自动生成的方法存根while(true) {System.out.println("1.添加员工 2.查找员工 3.编辑员工 4.删除员工 5.返回上一层");System.out.println("请输入操作:");int choice = sc.nextInt();if(choice == 1) {addEmployee();}else if(choice == 2) {findEmployee();}else if(choice == 3) {editEmployee();}else if(choice == 4) {deleteEmployee();}else {break;}}}private void deleteEmployee() {// TODO 自动生成的方法存根int flag = 0;System.out.println("请输入服务员姓名:");String name = sc.next();for(Waitter w:elist) {if(w.getName().equals(name)) {elist.remove(w);System.out.println("删除成功!");flag++;break;}}if(flag == 0) {System.out.println("删除失败!");}}private void editEmployee() {// TODO 自动生成的方法存根int flag = 0;System.out.println("请输入服务员姓名:");String name = sc.next();for(Waitter w:elist) {if(w.getName().equals(name)) {System.out.println("请输入修改后的姓名:");String ename = sc.next();w.setName(ename);System.out.println("请输入修改后的性别:");String sex = sc.next();w.setSex(sex);System.out.println("请输入修改后的价格:");int price = sc.nextInt();w.setPrice(price);System.out.println("修改后信息为:");System.out.println(w);flag++;}}if(flag == 0) {System.out.println("没有找到此服务员!");}}private void findEmployee() {// TODO 自动生成的方法存根int flag = 0;System.out.println("请输入服务员姓名:");String name = sc.next();for(Waitter w:elist) {if(w.getName().equals(name)) {System.out.println(w);flag++;}}if(flag == 0) {System.out.println("没有找到此服务员!");}}private void addEmployee() {// TODO 自动生成的方法存根Waitter w = new Waitter();System.out.println("输入姓名:");String name = sc.next();w.setName(name);System.out.println("输入性别:");String sex = sc.next();w.setSex(sex);System.out.println("输入服务价格:");int price = sc.nextInt();w.setPrice(price);elist.add(w);System.out.println("添加成功!");}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getPrice() {return price;}public void setPrice(int price) {this.price = price;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}@Overridepublic String toString() {return "Waitter [name:" + name + ", sex:" + sex + ", price:" + price + "]";}}

牛排类

package com.situ.chapterwork;import java.util.ArrayList;
import java.util.Scanner;public class Steak extends Sauce{Scanner sc = new Scanner(System.in);private int price;private String name;private int num;ArrayList<Steak> slist = new ArrayList<Steak>();public void smenu() {// TODO 自动生成的方法存根while(true) {System.out.println("1.添加 2.修改 3.查询 4.删除 5.返回上一层");System.out.println("请选择操作:");int choice = sc.nextInt();if(choice == 1) {addSteak();}else if(choice == 2) {editSteak();}else if(choice == 3) {findSteak();}else if(choice == 4) {deleteSteak();}else {break;}}}private void deleteSteak() {// TODO 自动生成的方法存根Steak st =new Steak();System.out.println("请输入需要删除的牛排名称:");String name = sc.next();st = findName(name);slist.remove(st);System.out.println("删除成功!");
}private void findSteak() {// TODO 自动生成的方法存根Steak st = new Steak();System.out.println("请输入需要查找的牛排名称:");String name = sc.next();st = findName(name);
}private Steak findName(String name) {boolean flag = false;Steak s = new Steak();for(Steak st:slist) {if(st.getName().equals(name)) {s = st;flag = true;System.out.println(st);return s;}}System.out.println("未找到此牛排!");return null;
}private void editSteak() {// TODO 自动生成的方法存根Steak flag = null;System.out.println("请输入需要修改的牛排名称:");String name = sc.next();flag = findName(name);if(flag != null) {for(Steak s:slist) {if(s.getName().equals(name)) {System.out.println("请输入修改后的牛排名称:");String ename = sc.next();s.setName(ename);System.out.println("请输入修改后的牛排价格:");int price = sc.nextInt();s.setPrice(price);System.out.println("请输入修改后的牛排数量:");int num = sc.nextInt();s.setNum(num);System.out.println("请输入修改后的牛排口味:");String f = sc.next();s.setFlavour(f);System.out.println("修改成功!");}}}}private void addSteak() {// TODO 自动生成的方法存根Steak st = new Steak();System.out.println("请输入牛排名称:");String n = sc.next();System.out.println("请输入牛排价格:");int p = sc.nextInt();System.out.println("请输入牛排数量:");int c = sc.nextInt();System.out.println("请输入牛排口味:");String f = sc.next();st.setName(n);st.setPrice(p);st.setNum(c);st.setFlavour(f);slist.add(st);if(toString()!=null) {System.out.println("添加成功!信息如下:");System.out.println(st);}else {System.out.println("添加失败!");}}public int getPrice() {return price;
}public void setPrice(int price) {this.price = price;
}public String getName() {return name;
}public void setName(String name) {this.name = name;
}public int getNum() {return num;
}public void setNum(int num) {this.num = num;
}@Override
public String toString() {return "Steak [price:" + price + ", name:" + name + ", num:" + num + ", getFlavour:" + getFlavour() + "]";
}}

酱料类

package com.situ.chapterwork;public class Sauce {private String flavour;public String getFlavour() {return flavour;}public void setFlavour(String flavour) {this.flavour = flavour;}}

运行结果




面向对象--西餐厅(基础实现)相关推荐

  1. [.net 面向对象编程基础] (18) 泛型

    [.net 面向对象编程基础] (18) 泛型 上一节我们说到了两种数据类型数组和集合,数组是指包含同一类型的多个元素,集合是指.net中提供数据存储和检索的专用类. 数组使用前需要先指定大小,并且检 ...

  2. [Java入门笔记] 面向对象编程基础(二):方法详解

    2019独角兽企业重金招聘Python工程师标准>>> 什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能 ...

  3. matlab面向对象排序,matlab面向对象编程基础

    matlab面向对象编程基础 觉得有用的话,欢迎一起讨论相互学习~ Matlab面向对象大体结构 类定义的普通模板 代码清单2.1.1 classdef className properties pr ...

  4. Day08 - 面向对象编程基础

    面向对象编程基础 活在当下的程序员应该都听过"面向对象编程"一词,也经常有人问能不能用一句话解释下什么是"面向对象编程",我们先来看看比较正式的说法. 把一组数 ...

  5. python编程基础是什么-Python面向对象编程基础解析(一)

    1.什么是面向对象 面向对象(oop)是一种抽象的方法来理解这个世界,世间万物都可以抽象成一个对象,一切事物都是由对象构成的.应用在编程中,是一种开发程序的方法,它将对象作为程序的基本单元. 2.面向 ...

  6. 面向对象编程基础 (一)

    面向过程的基础是一句一句的代码,而面向对象的基础则是对象,对象则由类的实例而来. 类的定义:具有相同的属性定义和行为表现的事物的集合. 类是变量(变的属性)与作用于这些变量的函数(类的方法)的集合,属 ...

  7. [.net 面向对象编程基础] (13) 面向对象三大特性——多态

    [.net 面向对象编程基础] (13) 面向对象三大特性--多态 前面两节,我们了解了面向对象的的封装和继承特性,面向对象还有一大特性就是多态.比起前面的封装和继承,多态这个概念不是那么好理解.我们 ...

  8. day31 Pyhton 面向对象的基础 三大特性

    一.内容回顾 封装 1.概念 笔记 2.__名字 在类的外部就不能用了 3.私有化的 不能被子类继承,也不能在其他任何类中调用 三个装饰器方法(装饰类中的方法) 1.不被修饰的  普通方法,会使用对象 ...

  9. PHP基础入门(五)---PHP面向对象实用基础知识

    前言: 今天来和大家介绍一下PHP的面向对象.说到面向对象,我不得不提一下面向过程,因为本人在初学时,常常分不清楚面向对象和面向过程,下面就来给大家介绍一下它们的区别: 面向对象专注于由哪个对象来处理 ...

最新文章

  1. (转载)从无知到有知
  2. 实战:遇到HTM的文件图标丢失的问题
  3. 关于 ie8不兼容的一些方法
  4. 第三次学JAVA再学不好就吃翔(part6)--基础语法之char数据类型
  5. visual studio 2017发布dotnet core到docker
  6. 关于 std::set/std::map 的几个为什么
  7. 学习Java编程-Java Timezone类常见问题
  8. 说说 IT 技术人的职业规划
  9. Java面试题-Java中的锁
  10. 物料分拣系统matlab仿真,基于PLC的物料分拣控制系统设计与仿真(含梯形图)
  11. Escape HDU - 3533
  12. Word2016怎么制作目录
  13. DirectX11 交换链是什么
  14. 区块链开发成本有多高?
  15. 8/14 二维高斯函数
  16. Handlebars 小技巧
  17. 原型设计Axure的基本使用
  18. bugku{web writeup笔记}
  19. 查询快递 如何操作查询快递物流信息给单号进行标记
  20. html5 jquery paint plugin,5+最好的画板,并在画布上手动绘制JavaScript和jQuery插件

热门文章

  1. Python数据挖掘入门与实践-OneR分类算法
  2. ASR项目实战-决策点
  3. 工业机器人打磨抛光编程员工资_工业机器人调试方面,工资高吗?累吗?
  4. Scala之特质特质Trait
  5. 叮叮书店 about.html,网页编程HTML+CSS网站设计
  6. python:2019新年贺词的词云制作以及基于TF-IDF的关键词提取
  7. html仿360首页动画效果图,仿360影视网站模板html源码
  8. mysql中数据库改名字_MySQL数据库改名字
  9. 华硕ASUS RT-AC66U无线路由器部署NTP Server最佳实践
  10. java虚拟机开源_IBM J9 Java虚拟机正式开源