- 功能简介:
- 接收用户输入的信息,选择购买的饮料。
- 可供选择的饮料有:咖啡、矿泉水和可乐。
- 其中,购买咖啡时可以选择:容量,然后再选择加糖、加奶还是什么都不加。
- 购买可乐时可以选择:买可口可乐还是百事可乐。
- 购买矿泉水可以选择:容量
- 实现效果:
1. 首先,定义一个饮料抽象类Drink.java
package com.feonix;
import java.util.Scanner;
public abstract class Drink {
private String name;
private int volume;
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 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;
@Override
public 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;
@Override
public 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 {
@Override
public 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();
}
}