/*
有一個圓形和長方形
都可以獲取面積,對於面積,如果出現非法數值,視為獲取面積出現問題
問題通過異常來表示。
先要對這個程序進行基本的設置
*/
/*首先想一下,怎麼寫這個程序
基本屬性是肯定要的
求面積呢?
1.可以定義成函數
2.可以定義成接口
3.或者數據庫什麼的
*/
1 interface Shape /*可以直接打印,可以返回*/ 2 { 3 void getArea(); /*要傳遞參數嗎?不需要,因為這是抽象類,需要把一些共同的屬性抽取出來,這裡並沒有,需要重寫,這裡重新獲取就可以*/ 4 } 5 class NoValueException extends RuntimeException 6 { 7 NoValueException(String message) /*構造函數*/ 8 { 9 super(message); /*調用父類的構造函數*/ /*這裡是父類的錯誤信息,直接能夠賦值的*/ 10 } 11 } 12 class Cricle implements Shape 13 { 14 private int radius; 15 public static final double PI=3.14; 16 Cricle(int radius) 17 { 18 if(radius<0) 19 throw new RunTimeException("非法"); /*使用這個異常名稱不好,不好處理問題,應該自定義名稱*/ 20 this.radius=radius; 21 } 22 public void getArea() 23 { 24 System.out.println(radius*radius*PI); /*不需要改動的值起一個名字 PI*/ 25 } 26 } 27 28 29 class Rec implements Shape /*長方形*/ 30 { 31 private int len,wid; /*定義長和寬*/ 32 Rec(int len,int wid) /*這哥們一初始化就有這個東西*/ 33 { 34 if(len<=0||wid<=0) 35 { 36 throw new NoValueException("出現非法值"); 37 } 38 39 this.len=len; /*進行賦值*/ 40 this.wid=wid; 41 42 } 43 public void getArea() /*進行重寫*/ 44 { 45 System.out.println(len*wid); /*直接打印輸出面積*/ 46 } 47 } 48 49 50 class ExceptionText1 51 { 52 public static void main(String args[]) 53 { 54 //try /*檢測代碼塊*/ 55 //{ 56 Rec r=new Rec(3,4); /*你發現輸入負數,面積為負數,這是不允許的,以前用if避免,但現在,請你用*/ 57 r.getArea(); /*如果上面的代碼出現了錯誤,這塊就不運行了*/ 58 //} 59 //catch(NoValueException e) /*接收異常,這種處理是沒有用的*/ 60 //{ 61 //System.out.println(e.toString()); /*輸出異常信息*/ 62 //} 63 System.out.println("over"); /*最後輸出*/ /*然而運行這是沒有用的,還不如直接用運行時異常,不需要檢查捕捉處理,直接停掉*/ 64 } 65 }