- 功能簡介:
- 接收用戶輸入的信息,選擇購買的飲料。
- 可供選擇的飲料有:咖啡、礦泉水和可樂。
- 其中,購買咖啡時可以選擇:容量,然後再選擇加糖、加奶還是什麼都不加。
- 購買可樂時可以選擇:買可口可樂還是百事可樂。
- 購買礦泉水可以選擇:容量
- 實現效果:
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();
}
}