1.编写程序实现软料购买:编写程序,接收用户输入的信息,选择购买的饮料。可供选择的饮料有:咖啡、矿泉水和可乐。其中,购买咖啡时可以选择:加糖、加奶还是什么都不加。购买可乐时可以选择:买可口可乐还是百事可乐。
2.运行结果:
3.源码
public class Drink {
private String name;
private int volume;
public Drink() {
}
public Drink(String name, int volume) {
super();
this.name = name;
this.volume = 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 void show(){
System.out.println("您购买的饮料信息如下:");
System.out.println("名称:"+name);
System.out.println("容量:"+volume);
}
}
public class Coffee extends Drink{
private String mixture;
public Coffee() {
}
public Coffee(String name,int volume, String mixture) {
super(name,volume);
this.mixture = mixture;
}
public String getMixture() {
return mixture;
}
public void setMixture(String mixture) {
this.mixture = mixture;
}
public void show(){
System.out.println("您购买的饮料信息如下:");
System.out.println("名称:"+super.getName());
System.out.println("添加配料:"+this.getMixture());
System.out.println("容量:"+super.getVolume());
}
}
public class Cola extends Drink {
private String flavor;
public Cola(String flavor, int volume) {
super("可乐", volume);
this.flavor = flavor;
}
public String getFlavor() {
return flavor;
}
}
public class Water extends Drink {
public Water(String name, int volume) {
super(name, volume);
}
}
import java.util.Scanner;
public class DrinkMaker {
public Drink make() {
Drink drink=null ;
Scanner input = new Scanner(System.in);
System.out.println("请选择饮料(1、咖啡2、矿泉水3、可乐)");
String choice=input.next();
if ("1".equals(choice)) {
System.out.println("请输入购买容量:");
int volume = input.nextInt();
System.out.println("请问是否要配料(1、加糖 2、加奶 3、什么也不加)");
int index = input.nextInt();
String mixture;
switch (index) {
case 1:
mixture = "加糖";
break;
case 2:
mixture = "加奶";
break;
default:
mixture = "什么都不加";
}
drink = new Coffee("咖啡", volume, mixture);
} else if ("2".equals(choice)) {
System.out.println("请输入购买容量:");
int volume = input.nextInt();
drink=new Water("矿泉水",volume);
} else if ("3".equals(choice)) {
System.out.println("请输入购买容量:");
int volume = input.nextInt();
System.out.println("请问是要可口可乐还是百事可乐");
String ch =input.next();
drink=new Cola(ch,volume);
}
return drink;
}
}
测试类:
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
DrinkMaker drinkMaker = new DrinkMaker();
Drink drink = drinkMaker.make();
if (drink != null) {
System.out.println("您购买的饮料是:" + drink.getName());
if (drink instanceof Coffee) {
System.out.println("配料:" + ((Coffee) drink).getMixture());
System.out.println("容量:"+((Coffee)drink).getVolume());
} else if (drink instanceof Water) {
System.out.println("容量:"+((Water)drink).getVolume());
} else if (drink instanceof Cola) {
System.out.println("口味:" + ((Cola) drink).getFlavor());
}
}
}