我的Java学习之路(三)-- 自动饮料售卖机控制台程序

自动饮料售卖机控制台程序

  • 1. 首先,定义一个饮料抽象类```Drink.java```
  • 2. 定义一个咖啡类```Coffee.java```,继承饮料类
  • 3. 再定义一个可乐类```Cola.java```,继承饮料类
  • 4. 再定义一个矿泉水类```Water.java```,继承饮料类
  • 6. 最后定义测试类

  • 功能简介:
    • 接收用户输入的信息,选择购买的饮料。
    • 可供选择的饮料有:咖啡、矿泉水和可乐。
    • 其中,购买咖啡时可以选择:容量,然后再选择加糖、加奶还是什么都不加。
    • 购买可乐时可以选择:买可口可乐还是百事可乐。
    • 购买矿泉水可以选择:容量
  • 实现效果:
    我的Java学习之路(三)-- 自动饮料售卖机控制台程序_第1张图片

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();
	}
}

你可能感兴趣的:(Java)