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()方法
@Override
public 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()方法
@Override
public 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()方法
@Override
public 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多态实现饮料购买咖啡、可乐、矿泉水变得更加灵活方便,与我们现实生活相符合。
到底啦!给靓仔点个关注吧!