实现步骤提示
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();
}
}
}