八月九 例題

重點內容
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();
}
}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章