1.编写程序实现软料购买:

编写程序,接收用户输入的信息,选择购买的饮料。

可供选择的饮料有:咖啡、矿泉水和可乐。

其中,购买咖啡时可以选择:加糖、加奶还是什么都不加。

购买可乐时可以选择:买可口可乐还是百事可乐。


本次编程我们将分成多个类来实现:

创建Drink类:

public abstract class Drink {//定义饮料的属性private String name;//名称private int volume;//容量private int price;//价格//定义getXxx()和setXxx()方法public String getName() {return name;}public void setName(String name) {this.name = name;}public int getVolume() {return volume;}public void setVolume(int volume) {this.volume = volume;}public int getPrice() {return price;}public void setPrice(int price) {this.price = price;}//定义有参的构造方法public Drink(String name, int volume,int price) {this.name = name;this.volume = volume;this.price=price;}//定义无参的构造方法public Drink() {}//定义抽象方法show()没有方法体public abstract void show();
}

创建Coffee类继承Drink:

public class Coffee extends Drink {//定义咖啡的特有属性private String mixture;//添加物public String getMixture() {return mixture;}public void setMixture(String mixture) {this.mixture = mixture;}public Coffee(String name, int volume, String mixture, int price) {super(name, volume,price);this.mixture = mixture;}public Coffee() {}//重写show()方法@Overridepublic void show() {System.out.println("名称:" + getName() + "\n添加配料:" + mixture + "\n容量:" + getVolume() + "\n价格:" + getPrice()+"元");}
}

创建Cola类继承Drink:

public class Cola extends Drink{
private String type;//定义有参的构造方法public Cola(String name, int volume,int price,String type) {super(name, volume,price);this.type=type;}//定义无参的构造方法public Cola() {}public String getType() {return type;}public void setType(String type) {this.type = type;}//重写show()方法@Overridepublic void show() {System.out.println("名称:" + getName() +"\n种类:" + type + "\n容量:" + getVolume() + "\n价格:" + getPrice()+"元");}
}

创建Water类继承Drink:

public class Water extends Drink {//定义有参的构造方法public Water(String name, int volume, int price) {super(name, volume, price);}//定义无参的构造方法public Water() {}//重写show()方法@Overridepublic void show() {System.out.println("名称:" + getName() + "\n容量:" + getVolume() + "\n价格:" + getPrice());}
}

创建DrinkTest测试类(main):

//导Scanner包
import java.util.Scanner;
public class DrinkTest {public static void main(String[] args) {//创建键盘录入对象Scanner sc = new Scanner(System.in);while (true){System.out.print("请选择饮料(1、咖啡 2、矿泉水 3、可乐 0、退出):");int num = sc.nextInt();Drink drink;if (num==1){drink = new Coffee();drink.setName("咖啡");System.out.print("请输入购买的容量:");int volume = sc.nextInt();drink.setVolume(volume);System.out.print("请问是否要配料:(1、加糖 2、不加糖 3、什么都不加):");int num2 = sc.nextInt();if (num2==1){((Coffee) drink).setMixture("加糖");}else if (num2==2){((Coffee) drink).setMixture("加奶");}else if (num2==3){((Coffee) drink).setMixture("什么都不加");}else {System.out.println("没有你想要的配料!");continue;}System.out.println("您购买的信息如下:");drink.setPrice(6);drink.show();}else if (num==2){drink =  new Water("矿泉水",500,2);System.out.println("您购买的信息如下:");drink.show();}else if (num==3){drink = new Cola();drink.setName("可乐");System.out.print("请输入购买的容量:");int volume = sc.nextInt();drink.setVolume(volume);System.out.print("请输入购买可乐的种类:(1、百世可乐 2、可口可乐):");int num2 = sc.nextInt();if (num2==1){((Cola) drink).setType("百世可乐");}else if (num2==2){((Cola) drink).setType("可口可乐");}else {System.out.println("没有你想要种类的可乐!");continue;}System.out.println("您购买的信息如下:");drink.setPrice(3);drink.show();}else if (num==0){System.out.println("欢迎下次光临!");break;}else {System.out.println("没有你想要的饮料!");}}}
}

运行结果:

请选择饮料(1、咖啡 2、矿泉水 3、可乐 0、退出):1
请输入购买的容量:50
请问是否要配料:(1、加糖 2、不加糖 3、什么都不加):1
您购买的信息如下:
名称:咖啡
添加配料:加糖
容量:50
价格:6元
请选择饮料(1、咖啡 2、矿泉水 3、可乐 0、退出):1
请输入购买的容量:30
请问是否要配料:(1、加糖 2、不加糖 3、什么都不加):2
您购买的信息如下:
名称:咖啡
添加配料:加奶
容量:30
价格:6元
请选择饮料(1、咖啡 2、矿泉水 3、可乐 0、退出):1
请输入购买的容量:34
请问是否要配料:(1、加糖 2、不加糖 3、什么都不加):3
您购买的信息如下:
名称:咖啡
添加配料:什么都不加
容量:34
价格:6元
请选择饮料(1、咖啡 2、矿泉水 3、可乐 0、退出):2
您购买的信息如下:
名称:矿泉水
容量:500
价格:2
请选择饮料(1、咖啡 2、矿泉水 3、可乐 0、退出):3
请输入购买的容量:100
请输入购买可乐的种类:(1、百世可乐 2、可口可乐):1
您购买的信息如下:
名称:可乐
种类:百世可乐
容量:100
价格:3元
请选择饮料(1、咖啡 2、矿泉水 3、可乐 0、退出):3
请输入购买的容量:45
请输入购买可乐的种类:(1、百世可乐 2、可口可乐):2
您购买的信息如下:
名称:可乐
种类:可口可乐
容量:45
价格:3元
请选择饮料(1、咖啡 2、矿泉水 3、可乐 0、退出):1
请输入购买的容量:43
请问是否要配料:(1、加糖 2、不加糖 3、什么都不加):4
没有你想要的配料!
请选择饮料(1、咖啡 2、矿泉水 3、可乐 0、退出):3
请输入购买的容量:234
请输入购买可乐的种类:(1、百世可乐 2、可口可乐):3
没有你想要种类的可乐!
请选择饮料(1、咖啡 2、矿泉水 3、可乐 0、退出):0
欢迎下次光临!

Process finished with exit code 0


本次编程相对于1.0版本的Java多态实现饮料购买咖啡、可乐、矿泉水变得更加灵活方便,与我们现实生活相符合。


到底啦!给靓仔点个关注吧!

案例:Java多态实现饮料购买咖啡、可乐、矿泉水2.0相关推荐

  1. Axure 点图片外区域即隐藏_澳网红分享麦当劳隐藏饮料:咖啡混可乐再加点这个,神仙级好喝...

    大家都听说过,星巴克有"隐藏菜单",有一阵子跟着这份菜单打卡,也一度在饮品爱好者之间成为了一种风潮. 那大家知道,麦当劳其实也有"隐藏菜单"吗? #01:抖音网 ...

  2. 案例:Java多态实现披萨制作2.0

    1.编写程序实现比萨制作.需求说明编写程序,接收用户输入的信息,选择需要制作的比萨.可供选择的比萨有:培根比萨和海鲜比萨. 实现思路及关键代码 1)分析培根比萨和海鲜比萨 2)定义比萨类 3)属性:名 ...

  3. Java实现计算饮料价格GUI版(入门)

    对于该系统,主要是针对购买咖啡和奶茶时,添加不同的配料的价格计算,其运行结果如下图 该实现一个Coffee类,里面包含各种饮料和配料 package cn.edu.shengda;//饮料 abstr ...

  4. java多态 降低代码耦合性_深度分析:理解Java中的多态机制,一篇直接帮你掌握!...

    Java中的多态 1 多态是什么 多态(Polymorphism)按字面的意思就是"多种状态".在面向对象语言中,接口的多种不同的实现方式即为多态.用白话来说,就是多个对象调用同一 ...

  5. java多态app_Java 入门教程 - Java 多态 - IT学院 - 中国软件协会智能应用服务分会...

    Java 多态 本小节我们来学习面向对象的最后一大特征--多态.多态是面向对象最重要的特性.我们将介绍多态的概念和特点,并带领大家实现一个多态的案例,你将了解到多态的实现条件.什么是向上转型以及什么是 ...

  6. Java多态的理解和应用

    一.多态概述 1.多态是继封装.继承之后,面对对象的第三大特性 2.多态在实际中的意义: ● 在现实生活中尝尝会出现不同的形态体现,例如张三是一名学生,而学生又是人的一种分类,所以说张三既是学生也是人 ...

  7. java的多态代码例子_java多态例子,java多态代码实例

    下面要给大家分享的是一个多态经典案例,一起来看看这个java多态简单例子吧./*多态的好处:提高了代码的维护性和扩展性: 弊端:父类不能使用子类的特有功能. 要用子类的特有功能,可以: A:创建子类对 ...

  8. Java多态与泛型 ,动态绑定,静态绑定

    文章目录 (一)多态 1.概念 1.1 使用继承: 1.2 实现接口(推荐): 2.作用 3.多态的实现原理 3.1 Java 动态绑定以及内部实现机制 程序绑定的概念 关于final.static. ...

  9. java -----多态:父类引用指向子类对象

    生活中的人物视角 程序中的多态 概念:父类引用指向子类对象,从而产生多种形态 一个引用变量到底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定 比 ...

  10. Java多态-如何理解父类引用指向子类对象

    java多态,如何理解父类引用指向子类对象 要理解多态性,首先要知道什么是"向上转型". 我定义了一个子类Cat,它继承了Animal类,那么后者就是前者是父类.我可以通过   C ...

最新文章

  1. chrome java插件_selenium启动Chrome配置参数问题
  2. 97.5%准确率的深度学习中文分词(字嵌入+Bi-LSTM+CRF)
  3. 《软件工程》总结——第十一章
  4. 小程序之点击跳转到对应内容
  5. 机器学习笔记: Discriminative vs Generative Models
  6. python 自动补全
  7. 输入参数的数目不足 matlab_哈工大被禁用MATLAB,工科学生慌了,论文至上间接导致软件依赖?...
  8. mysql多源复制 知乎_MySQL多主一从(多源复制)同步配置
  9. php暂停循环,在特定数量的递归循环后,PHP停止执行
  10. 参加IBM武汉分公司10周年庆
  11. 【转载】新韭菜日记39--20190318 ----最近反思 学习分析财务
  12. A19-Python基础之lambda匿名函数-过滤器-映射
  13. 5G NR协议学习--TS38.211主要参数解读
  14. 安装Linux系统时卡在命令行了,从硬盘安装Linux和从Grub命令行启动操作系统
  15. 解决电脑分辨率及缩放导致页面变形的问题
  16. 4-基于51单片机的无线病床呼叫系统设计
  17. Run Book Automation - RBA系统介绍
  18. 数字量产工具:输入系统-触摸屏编程
  19. 电脑基站测试软件,Signalsitemap PC Tools(阿达基站路测PC辅助工具) V3.50 官方版
  20. linux同时运行多个任务吗,Linux 是一个真正的多任务和分时操作系统,允许多个用户在相同的机器上一次运行很多程序。...

热门文章

  1. Cash-Secured Puts Vs. Covered Calls
  2. Redis集群之主从模式
  3. 听云SDK影响其他项目报Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/networkbench/agent
  4. SQL中模糊查询 like使用
  5. 表示 (Representation):特征工程
  6. 清华牛人总结的数据分析笔记
  7. 大神之光照耀着我 - 我的成长之路 - 起点
  8. 用Python 实现简单的汇率计算
  9. 自动删除微博【新版微博】
  10. 乐嘉老师色彩性格测试完全版