Java初级题目:品尝饮料。要求 1、使用命令行参数 饮料类型 输出该饮料类型的味道 如 当命令行参数为1时 比 如 我是啤酒,我是苦的 2、如果没有该种饮料 提示没有此饮料异常

实现步骤提示

1、建立一个Java抽象类Drink

a、声明一个抽象方法taste() 该方法负责输出饮料的味道
b、声明int型常量来代表不同的饮料类型 咖啡、啤酒、牛奶
c、声明静态工厂方法getDrink(int drinkType) 根据传入的参数创建不同的饮料对象 并返回该对象 建议使用switch语句。该方法要求声明DrinkNotFoundException 当没有相对应的饮料类型时抛出该异常。

2、建立Drink的具体子类

a、分别建立Drink的子类 Coffee 代表咖啡 Beer 代表啤酒 Milk代表牛奶 ;
b、实现taste()方法 要求在控制台打印各自的味道特征。

3、建立异常类DrinkNotFoundException

a、继承Exception
b、在Drink的 方法getDrink(int drinkType)中声明引发DrinkNotFoundException异常 当传入的参数没有相对应的饮料类型时抛出异常。
c、在使用getDrink方法的类中捕捉该异常。

4、建立Test测试类

a、编写main方法 通过命令行传参的方式传入某种饮料的类型。
b、在main方法中 调用Drink类的getDrink方法 获得相应的饮料对象。注意捕获DrinkNotFoundException。
c、然后调用该饮料对象的taste()方法 输出该饮料的味道。

以下为实现代码块:

***1、***建立一个Java抽象类Drink

public abstract class Drink {
	
	public abstract void taste();
	
	int Coffee,Beer,Milk;
	
	static int getDrink(int drinkType) throws DrinkNotFoundException{
		switch(drinkType) {
			case 1:
				System.out.println("coffee");
				Coffic coffic = new Coffic();
				coffic.taste();
				break;
			case 2:
				System.out.println("beer");
				Beer beer = new Beer();
				beer.taste();
				break;
			case 3:
				System.out.println("Milk");
				Milk milk = new Milk();
				milk.taste();
				break;
			default:
				throw new DrinkNotFoundException(); 
		}
		return drinkType;
	}
}

***2、***建立Drink的具体子类

public class Coffic extends Drink{
	public void taste() {
		System.out.println("咖啡是苦的!");
	}
}
public class Beer extends Drink{
	public void taste() {
		System.out.println("我是啤酒,我是苦的!");
	}
}

public class Milk extends Drink{
	public void taste() {
		// TODO Auto-generated method stub
		System.out.println("我是牛奶,我是白的!");
	}
}

***3、***建立异常类DrinkNotFoundException

public class DrinkNotFoundException extends Exception {

	private static final long serialVersionUID = 1L;

}

***4、***建立Test测试类 `

public class Test{
	public static void main(String[] args) throws DrinkNotFoundException{
		Scanner input = new Scanner(System.in);
		System.out.println("请输入1,2,3");
		try {
			int num = input.nextInt();
			Drink.getDrink(num);
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
	}
}

  • 7
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值