八月九 例题

2 篇文章 0 订阅

重点内容
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()方法 输出该饮料的味道。

//主类抽象类
abstract class Drink {
public abstract void taste(); // 该方法负责输出饮料的味道

int i1;  //咖啡
int i2;  //啤酒
int i3;  //牛奶

public static void getDrink(int drinkType) throws DrinkNotFoundException{  //声明异常
    if(drinkType<1||drinkType>3){
        throw new DrinkNotFoundException();
    }
    switch (drinkType) {
    case 1:
        System.out.println("咖啡");
        break;
    case 2:
        System.out.println("啤酒");       
                break;
    case 3:
        System.out.println("牛奶");
        break;

    default:
        break;
    }

}

}

编写异常类

class DrinkNotFoundException extends Exception{ //所有的异常类都继承Exception

public DrinkNotFoundException() {
    super();
    // TODO Auto-generated constructor stub
}

public DrinkNotFoundException(String message) {  //直接使用Exception的message属性
    super(message);
    // TODO Auto-generated constructor stub
}

}

三个实例子类来继承抽象父类来重写父类的味道方法
1.啤酒类

        public class Beer extends Drink{
            @Override
            public void taste() {
                // TODO Auto-generated method stub
                System.err.println("酒不醉人人自醉");
            }
        }

    2.咖啡类

    public class Coffee extends Drink{
        @Override
        public void taste() {
            // TODO Auto-generated method stub
            System.err.println("苦涩当中有着一丝甜意");
        }
    }

    3.牛奶类


    public class Mike extends Drink {

    @Override
        public void taste() {
            // TODO Auto-generated method stub
            System.err.println("浓浓的奶香味");
        }
    }

测试类
public class Test {
public static void main(String[] args) throws DrinkNotFoundException {
Coffee c = new Coffee();
Mike m = new Mike();
Beer b = new Beer();
Scanner sc = new Scanner(System.in);
System.out.println(“请输入你要购买的饮料的编号:”);
try {
int i = sc.nextInt();
b.getDrink(i);
if(i==1){
c.taste();
}else if(i==2){
b.taste();
}else{
m.taste();
}
} catch (Exception e) {
System.err.println(“没有这个饮料品牌,您的输入有误!”);
e.printStackTrace();
}
}
}

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值