我的Java学习之路(三)-- 自动饮料售卖机控制台程序
自动饮料售卖机控制台程序
- 1. 首先,定义一个饮料抽象类```Drink.java```
- 2. 定义一个咖啡类```Coffee.java```,继承饮料类
- 3. 再定义一个可乐类```Cola.java```,继承饮料类
- 4. 再定义一个矿泉水类```Water.java```,继承饮料类
- 6. 最后定义测试类
- 功能简介:
- 接收用户输入的信息,选择购买的饮料。
- 可供选择的饮料有:咖啡、矿泉水和可乐。
- 其中,购买咖啡时可以选择:容量,然后再选择加糖、加奶还是什么都不加。
- 购买可乐时可以选择:买可口可乐还是百事可乐。
- 购买矿泉水可以选择:容量
- 实现效果:
1. 首先,定义一个饮料抽象类Drink.java
package com.feonix;import java.util.Scanner;public abstract class Drink {// 饮料名称private String name;// 饮料容量private int volume;/*** 获取饮料名称* * @return*/public String getName() {return name;}/*** 设置饮料名称* * @param name*/public void setName(String name) {this.name = name;}/*** 获取饮料容量* * @return*/public int getVolume() {return volume;}/*** 设置饮料容量* * @param volume*/public void setVolume(int volume) {this.volume = volume;}/*** 购买饮料的抽象方法* * @param key*/public abstract void buy(Scanner key);
}
2. 定义一个咖啡类Coffee.java
,继承饮料类
package com.feonix;import java.util.Scanner;public class Coffee extends Drink {// 配料列表private static final String[] MIXS = {"", "加糖", "加奶", "什么都不加"};// 配料private String mix;@Overridepublic void buy(Scanner key) {// 设置饮料名字为 咖啡this.setName("咖啡");System.out.println("请输入购买容量:");// 设置饮料的容量为接收用户输入的数字this.setVolume(key.nextInt());System.out.println("请问是否要添加配料:(1.加糖 2.加奶 3.什么都不加)");int num = key.nextInt();if (num < 1 || num > 3) {System.out.println("您输入的选项不存在,请重新输入");return;}// 设置配料this.mix = MIXS[num];System.out.printf("您要购买的饮料信息如下:\n名称:%s\n容量:%d\n添加配料:%s\n\n", this.getName(), this.getVolume(), this.mix);}}
3. 再定义一个可乐类Cola.java
,继承饮料类
package com.feonix;import java.util.Scanner;public class Cola extends Drink {// 可乐种类列表private static final String[] TYPES = { "", "百世可乐", "可口可乐" };// 可乐的种类private String type;@Overridepublic void buy(Scanner key) {// 设置饮料名字为 可乐this.setName("可乐");System.out.println("请输入购买容量:");// 设置饮料的容量为接收用户输入的数字this.setVolume(key.nextInt());System.out.println("请问您想购买的可乐种类是:(1.百事可乐 2.可口可乐)");int num = key.nextInt();if (num < 1 || num > 2) {System.out.println("您输入的选项不存在,请重新输入");return;}// 设置可乐种类this.type = TYPES[num];System.out.printf("您要购买的饮料信息如下:\n名称:%s\n容量:%d\n可乐种类:%s\n\n", this.getName(), this.getVolume(), this.type);}
}
4. 再定义一个矿泉水类Water.java
,继承饮料类
package com.feonix;import java.util.Scanner;public class Water extends Drink {@Overridepublic void buy(Scanner key) {// 设置饮料名字为 矿泉水this.setName("矿泉水");System.out.println("请输入购买容量:");// 设置饮料的容量为接收用户输入的数字this.setVolume(key.nextInt());System.out.printf("您要购买的饮料信息如下:\n名称:%s\n容量:%d\n\n", this.getName(), this.getVolume());}}
6. 最后定义测试类
package com.feonix;import java.util.Scanner;public class Test {public static void main(String[] args) {System.out.println("==欢迎使用爱鲜蜂自动饮料售货机==");System.out.println("请选择饮料(1.咖啡 2 矿泉水 3 可乐):");Scanner key = new Scanner(System.in);int num = key.nextInt();switch (num) {case 1:Drink coffee = new Coffee();coffee.buy(key);break;case 2:Drink water = new Water();water.buy(key);break;case 3:Drink cola = new Cola();cola.buy(key);default:break;}key.close();}
}
我的Java学习之路(三)-- 自动饮料售卖机控制台程序相关推荐
- java学习之路2--简单工厂模式实现饮料自动贩卖机
java学习之路2 用简单工厂模式实现饮料自动贩卖机 功能简介 具体实现 1.简单工厂模式 2.代码 总结 用简单工厂模式实现饮料自动贩卖机) 功能简介 接收用户输入的信息,选择购买的饮料. 可供选择 ...
- JAVA学习之路--基础篇三
目录 关于Java中从键盘输入的语句 nextxxx().next().nextLine()的区别 语句 if和if else语句 Switch语句 for语句 while和do..while bre ...
- 菜鸟haqima的Java学习之路第一天
菜鸟haqima的Java学习之路第一天 导读:DOS命令 常用快捷键 Java的简单概述 (第一章 Java开发环境的搭建) 1.常用的DOS命令 1.1.怎么打开DOS命令窗口 win键+r(组合 ...
- java学习之路之javaSE基础1
<h2>java学习之路之javaSE基础1</h2> <div> ###01.01_计算机基础知识(计算机概述)(了解) * A:什么是计算机?计算机在生活中的应 ...
- 个人开发经历--我的java学习之路(学校篇)
个人开发经历--我的java学习之路(学校篇) 个人介绍: 姓名: 不在这里说明 联系信息: 个人历程 jdbc阶段 sql生成器 一代代码生成器 servlet阶段 servlet项目中,sql生成 ...
- 萌新的java学习之路——第一周
萌新的java学习之路--第一周 第一周的学习 这是我学习Java的第一周,写这个博客更多的时为了总结自己这一周的学习情况,如果有人看到我写的博客,有什么问题的话,可以问我.虽然我也是一个小白,但我会 ...
- java学习之路---java学习的方法和java学习路线
转载于: http://blog.csdn.net/zhangerqing 前段时间逛论坛,总会有很多新手很迷茫,问到:到底该怎么学好Java,这个问题很重要,尤其对于像我们这样大多数都是靠自学的人来 ...
- java学习之路目录(已完结)
java学习之路目录(持续更新中-) 第一阶段 javaSE(完结) 序号 标题 内容 001 java初识 java语言特点.体系结构.运行机制 002 java SE基础语法 注释.关键字.变量. ...
- Java学习之路——接口
Java学习之路--接口 概述 总所周知,我们是父母的孩子.我们的身上既继承了爸爸的基因也继承了妈妈的基因.这就是多继承. 然而在 Java 程序中,是不支持多继承的.Java 仅仅支持单继承.但是接 ...
最新文章
- mysql免密码登录, 及使用-e 参数执行sql脚本
- [IPhone] 仅在Debug编译的NSLog
- SAP ABAP实用技巧介绍系列之 How is configuration data loaded
- static_cast, dynamic_cast, const_cast探讨【转】
- HTML5 地理位置定位(HTML5 Geolocation)原理及应用 (调用GPS)
- 添加底部小火箭+目录
- AngularJS中ng-options简单用法及预选项失败的原因
- layui第三方插件引入_插件分享 | 可以进行web爬虫的Xray插件(文章末尾有福利)...
- Git:git合并分支
- 详细图解哈夫曼Huffman编码树
- centos mysql源_CentOS 使用国内源安装 MySQL
- Photoshop CS6版本安装及破解教程
- android 日期控件计算星座,21. “我”模块(二)之星座选择
- 计算机启动硬盘响,电脑开机时硬盘响个不停的原因及解决方法
- 商业虚拟专用网络技术十二 BGP/MPLS
- 苹果手机最近删除的照片删除了怎么恢复?
- 曾颖明的博客关于作者
- 数学建模学习1.22——多元回归分析
- 苹果id被锁定恢复方法(appleid被锁定怎么解除)
- 微信小程序—调用imgSecCheck接口实现多张图片鉴黄,敏感过滤