日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

day15 接口与异常

發布時間:2025/3/14 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 day15 接口与异常 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? 接口

是一種獨立于類的新機制,它關注的是行為。

接口的意義就體現在——讓沒有繼承關系的類共享這些行為,各有各的具體實現。

設計上:當我們發現一個或多個類的方法相同,又沒有繼承關系,則考慮接口。

命名:***able?? 關鍵字:interface?

屬性:只能公共靜態常量屬性,就算不寫關鍵字,也是默認三種情況。

構造:接口不能有構造,接口不能產生對象。

行為:只能是公共的抽象方法,即使不寫修飾符,也是默認這種狀況。

在jdk1.7以上的版本中,允許接口擁有已經實現了的方法,但必須用default關鍵字修飾。

接口的用處:1、讓類實現接口,而且是多實現的。

???????????????????? 類實現接口,使用implement關鍵字,并且重寫接口中的抽象方法。

???????????????????? 如果一個類實現一個接口,但沒有重寫全部的抽象方法,則這個類為抽象類。

???????????????????? 類可以實現多個接口,只能是單繼承。

?????????????????2、接口可以繼承接口,而且是多繼承的。

??????????????????????設計原則:接口隔離原則(接口最小原則)盡量定義小接口。

???????????????? 3、應用多態——接口引用指向實現接口的類的對象。

??????????????????????如果類沒有實現接口,不能用接口指向它的對象。

????????????????????? 接口引用==擁有莫種能力的東西。

抽象類和接口在設計上的區別:與生俱來(一脈相承)的行為寫到抽象類中;附屬添加的行為寫到接口,接口盡量定義小接口。

?

異常

問題:包括異常(Exception)和錯誤(Error)。

錯誤:程序不能用代碼解決的問題。包括硬件問題、環境問題、系統問題等。

異常:包括運行時異常和編譯時異常(檢查異常)。

運行時異常:程序在運行期間出現的異常。像常見的空指針異常、數組下標越界、類型轉換異常等。

編譯時異常:程序在編譯時,有紅線提示(unhandled Exception)信息的異常。不捕獲就不能通過編譯。

異常處理機制:在程序發生異常的地方,jvm會產生一個異常對象,先暫停程序運行,然后往下看有沒有捕獲異常,如果沒有,就返回方法的調用處,如果方法的調用處也沒有捕獲,就一層層往上返回,如果最后連main主方法都沒有捕獲異常,則返回JVM,jvm就會終止程序運行,并打印異常信息。期間任何一個環節捕獲了異常,程序都能在捕獲后的地方,繼續執行。

異常處理:1、預判提前處理異常發生的條件。

????????????? 2、異常捕獲try、catch

try塊、catch塊:

1、try塊運行可能發生異常的程序,catch塊判斷可能發生的異常,并給出相應的處理措施。

2、catch塊一次只能捕獲一個異常。

3、多個catch塊應從子到父的順序抒寫,否則子異常匹配不到。

4、e.printStackTrace();語句可以在catch塊中打印異常。

5、try、catch可以與其它條件控制語句混合使用,使程序即使發生了異常,也能回到異常發生的地方繼續執行。

finally塊不管是否發生異常,都要執行的代碼。

finally——資源的管理,通道的關閉。

finally的優先級非常高,不管break、continue還是return都無法阻止它被執行,它在它們之前執行。唯一能阻止finally執行的是System.exit()。

try、catch、finally都不能單獨存在。

try后面必有catch或finally。

catch/finally前面必有try。

拋異常

我們可以在業務邏輯處產生一個異常對象,使用throw關鍵字拋出這個異常。

當主動拋出的異常是一個編譯時異常的時候,必須在編譯期對本方法的調用者產生警告,需要在方法的聲明處添加throws,表明該方法有可能發生異常。

throws會影響到重寫的規范——子類重寫方法不能拋出比父類被重寫方法范圍更大的異常。

throw和throws的辨析:

1、throw和throws都是關鍵字,都屬于異常處理部分的。

2、throw是寫在方法體中的,后面跟的是一個異常對象。

throws是寫在方法聲明最后面的,后面跟的是一個或者多個異常類。

3、當運行到throw這句代碼的時候,就會真正發生拋出一個異常對象的動作。

throws是在編譯期警告本方法的調用者,有可能會發生哪些類型的異常。

4、當一個方法體中有throw語句,不一定會有throws,除非throw后面跟的是編譯期異常,那就必須寫throws。

自定義異常:

三層架構:

表示層??? 業務層????? 數據訪問層

1、自定義異常必須繼承Exception。

2、自定義異常至少有兩個帶參構造,一個帶異常參,一個帶字符串參,前者用于把其它異常類型轉換為自定義異常,后者用于操作非jvm主動拋出的業務異常。

3、可以給自定義異常提供拓展方法。

一個完整的方法聲明:訪問修飾符 可選修飾符 返回類型 方法名(形參列表)throws拋出的異常列表。

轉載于:https://www.cnblogs.com/fengshaolingyun/p/6146461.html

總結

以上是生活随笔為你收集整理的day15 接口与异常的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。