我的Java學習之路(三)-- 自動飲料售賣機控制檯程序

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

1. 首先,定義一個飲料抽象類Drink.java

package com.feonix;

import java.util.Scanner;

public abstract class Drink {
	// 飲料名稱
	private String name;
	// 飲料容量
	private int volume;

	/**
	 * 獲取飲料名稱
	 * 
	 * @return
	 */
	public String getName() {
		return name;
	}

	/**
	 * 設置飲料名稱
	 * 
	 * @param name
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * 獲取飲料容量
	 * 
	 * @return
	 */
	public int getVolume() {
		return volume;
	}

	/**
	 * 設置飲料容量
	 * 
	 * @param volume
	 */
	public void setVolume(int volume) {
		this.volume = volume;
	}

	/**
	 * 購買飲料的抽象方法
	 * 
	 * @param key
	 */
	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();
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章