编写程序实现软料购买:
编写程序,接收用户输入的信息,选择购买的饮料。
可供选择的饮料有:咖啡、矿泉水和可乐。
其中,购买咖啡时可以选择:加糖、加奶还是什么都不加。
购买可乐时可以选择:买可口可乐还是百事可乐。
更多文章请参考Java多态实现饮料购买咖啡、可乐、矿泉水2.0
编程如下:
import java.util.Scanner;
public 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 Drink() {
}
public Drink(String name, int volume) {
this.name = name;
this.volume = volume;
}
public void show() {
System.out.println("您购买的饮料信息如下:" + "\n名称:" + name + "\n容量:" + volume);
}
}
class Coffee extends Drink {
private String mixture;//添加物
public String getMixture() {
return mixture;
}
public void setMixture(String mixture) {
this.mixture = mixture;
}
public Coffee() {
}
public Coffee(String name, String mixture, int volume) {
super(name, volume);
this.mixture = mixture;
}
@Override
public void show() {
System.out.println("您购买的饮料信息如下:" + "\n名称:" + super.getName() +
"\n添加配料:" + this.mixture + "\n容量:" + super.getVolume());
}
}
//可乐类
class Coco extends Drink {
public Coco() {
}
public Coco(String name, int volume) {
super(name, volume);
}
@Override
public void show() {
System.out.println("您购买的饮料信息如下:" + "\n名称:" + getName() + "\n容量:" + getVolume());
}
}
//矿泉水类
class Water extends Drink {
public Water() {
}
public Water(String name, int volume) {
super(name, volume);
}
@Override
public void show() {
System.out.println("您购买的饮料信息如下:" + "\n名称:" + getName() + "\n容量:" + getVolume());
}
}
//饮料选择类
class DrinkFactory {
public static Drink getDrink(int i) {
//赋初始值
Drink drink = null;
//创建键盘录入对像
Scanner sc = new Scanner(System.in);
if (i == 1) {
System.out.println("请输入购买容量:");
int volume = sc.nextInt();
System.out.println("请问是否要配料(1、加糖 2、加奶 3、什么也不加)");
int choice = sc.nextInt();
String mixture;
switch (choice) {
case 1:
mixture = "加糖";
break;
case 2:
mixture = "加奶";
break;
default:
mixture = "什么都不加";
break;
}
drink = new Coffee("咖啡", mixture, volume);
} else if (i == 2) {
System.out.println("请输入购买容量:");
int volume = sc.nextInt();
System.out.println("请输入你需要购买的可乐:1.百事可乐 2.可口可乐");
int choice = sc.nextInt();
switch (choice) {
case 1:
drink = new Coco("百世可乐", volume);
break;
case 2:
drink = new Coco("可口可乐", volume);
break;
default:
System.out.println("没有该饮料");
break;
}
drink = new Coco("可乐",volume);
} else if (i == 3) {
System.out.println("请输入购买容量:");
int volume = sc.nextInt();
drink = new Water("矿泉水", volume);
}
return drink;
}
}
//饮料测试类
class DrinkTest {
public static void main(String[] args) {
//创建键盘录入对象
Scanner sc = new Scanner(System.in);
System.out.println("请选择饮料(1.咖啡 2 可乐 3 矿泉水):");
int num = sc.nextInt();
Drink drink = DrinkFactory.getDrink(num);
drink.show();
}
}
运行结果:
请选择饮料(1.咖啡 2 可乐 3 矿泉水):
1
请输入购买容量:
23
请问是否要配料(1、加糖 2、加奶 3、什么也不加)
1
您购买的饮料信息如下:
名称:咖啡
添加配料:加糖
容量:23Process finished with exit code 0
请选择饮料(1.咖啡 2 可乐 3 矿泉水):
2
请输入购买容量:
34
请输入你需要购买的可乐:1.百事可乐 2.可口可乐
3
没有该饮料
您购买的饮料信息如下:
名称:可乐
容量:34Process finished with exit code 0
请选择饮料(1.咖啡 2 可乐 3 矿泉水):
2
请输入购买容量:
34
请输入你需要购买的可乐:1.百事可乐 2.可口可乐
2
您购买的饮料信息如下:
名称:可乐
容量:34Process finished with exit code 0
请选择饮料(1.咖啡 2 可乐 3 矿泉水):
3
请输入购买容量:
500
您购买的饮料信息如下:
名称:矿泉水
容量:500Process finished with exit code 0
到底啦!给靓仔点个赞吧!