五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

接口/內(nèi)部類/異常處理

2022-07-23 16:34 作者:劍離我離  | 我要投稿

interface

  1. 接口和類是并列的兩個結(jié)構(gòu)

  2. 如何定義接口:

  • JDK7以前:只能定義全局常量和抽象方法

  • 全局常量:public static final,可以省略,會默認(rèn)加上

  • 抽象方法:public abstract

  • JDK8:除了定義全局常量和抽象方法之外,還可以定義靜態(tài)方法、默認(rèn)方法

  • 接口中定義的靜態(tài)方法,只能通過接口來調(diào)用。

  • 通過實現(xiàn)類的對象,可以調(diào)用接口中的默認(rèn)方法,默認(rèn)方法,子類拿來可以直接調(diào)。

  • 如果子類(或?qū)崿F(xiàn)類)繼承的父類和實現(xiàn)的接口中聲明了同名同參數(shù)的方法,那么子類在沒有重寫此方法的情況下,默認(rèn)調(diào)用的是父類中的同名同參數(shù)的方法 。 --> 類優(yōu)先原則

  • 如果實現(xiàn)類實現(xiàn)了多個接口,而這多個接口中定義了同名同參數(shù)的默認(rèn)方法,那么在實現(xiàn)類沒有重寫此方法的情況下,報錯。 --> 接口沖突

  1. 接口通過類去實現(xiàn)(implements)的方式來使用。

  • 如果實現(xiàn)類覆蓋了接口中的所有抽象方法,則此實現(xiàn)類就可以實例化

  • 如果實現(xiàn)類沒有覆蓋接口中所有的抽象方法,則此實現(xiàn)類仍為一個抽象類,如果實現(xiàn)類重寫了接口中的默認(rèn)方法,調(diào)用時,仍然調(diào)用的是重寫以后的方法

  1. JAVA 可以實現(xiàn)多接口

內(nèi)部類

分類:成員內(nèi)部類(靜態(tài)、非靜態(tài)) ?vs 局部內(nèi)部類(方法內(nèi)、代碼塊內(nèi)、構(gòu)造器內(nèi))

成員內(nèi)部類:

  • 可以被final修飾,表明此類不能被繼承

  • 可以被absract修飾

  • 可以被四種不同修飾符修飾

局部內(nèi)部類的使用:

  • 在局部內(nèi)的方法中(比如 show),如果調(diào)用局部內(nèi)部類所聲明的方法(比如 : method ) 中的局部變量的話,要求此局部變量聲明為final的。

面試題:

抽象類和接口的異同?

相同點:不能實例化;都可以包括抽象方法;

不同點:

  • 把抽象類和接口(Java 7 ,java8 ,java9)的定義、內(nèi)部結(jié)構(gòu)解釋說明

  • 類: 單繼承 接口:多繼承; 類與接口: 多實現(xiàn)

異常處理

體系結(jié)構(gòu):

總父類:Trowable

  • java.lang.error :一般不編寫針對性的代碼進(jìn)行處理。

  • java.lang.Exception :可以進(jìn)行異常的處理

  • 編譯時異常(check)

  • 運行時異常(uncheck) --- RuntimeException

try-catch-finally

  • catch 中的異常類型,如果沒有子父類關(guān)系,則無順序要求

  • 如果有子類關(guān)系,則要求子類一定要父類上面

常用的兩種處理方法:

  • getMessage () ; // String

  • printStackTrace () : ?// void

在try中聲明的變量,出了try就用不了了

  • finally 中聲明的是一定會被執(zhí)行的代碼。即使catch中又出現(xiàn)異常了。 try中有return語句的情況,catch中有return語句的情況。

  • 像數(shù)據(jù)庫連接、輸入輸出流、socket連接,JVM是不能自動回收的。我們需要手動的進(jìn)行資源的回收,此時的資源釋放,就需要放在finally中

使用try-catch 處理編譯時異常,是得程序在編譯時就不報錯,但是運行時仍可報錯。相當(dāng)于我們使用try-catch 將一個編譯時可能出現(xiàn)的異常,延遲到運行時出現(xiàn)。

throws + 異常類型

一旦當(dāng)方法體執(zhí)行時,出現(xiàn)異常,仍會在異常代碼處生成一個異常類的對象,此對象滿足throws后異常類型時,就會被拋出。異常代碼后續(xù)的代碼,就不再執(zhí)行。

try-catch : ?真正的將異常處理掉了

throws: 只是將異常拋給了方法的調(diào)用者。并沒有真正地將異常處理掉。

開發(fā)中如何選擇:

  • 如果父類中被重寫的方法沒有throws方法處理異常,則子類重寫的方法也不能使用throws,意味著如果子類 重寫的方法中有異常,必須使用try-catch

  • 執(zhí)行的方法中,先后又調(diào)用了另外的幾個方法,這幾個方法是遞進(jìn)關(guān)系進(jìn)行的。我們建議這幾個方法使用throws的方式進(jìn)行處理。而執(zhí)行的方法a可以考慮try-catch的方式進(jìn)行處理。

關(guān)于異常對象的產(chǎn)生:

  • 系統(tǒng)自動生成的異常對象

  • 手動的生成一個異常對象,并拋出“throw”

只有異常體系的對象才可以 throew new ?異常類類名 () ;

throw 和 thorws 的區(qū)別 :

  • throw是拋,throws 是抓

  • throw 表示拋出一個異常類的對象,生成異常對象的過程。聲明在方法體內(nèi)

  • throws 屬于異常處理的一種方式,聲明在方法的聲明處


接口/內(nèi)部類/異常處理的評論 (共 條)

分享到微博請遵守國家法律
绿春县| 阳新县| 定边县| 威宁| 庄浪县| 赤城县| 石门县| 门源| 苏尼特左旗| 黄浦区| 丹棱县| 福贡县| 三都| 沙河市| 辽阳市| 景宁| 海晏县| 疏附县| 太保市| 乌什县| 额敏县| 黄浦区| 尉氏县| 闽侯县| 子长县| 泸水县| 五家渠市| 广灵县| 高雄县| 长治市| 麦盖提县| 长子县| 宁武县| 温泉县| 墨玉县| 雅江县| 遂平县| 库伦旗| 洱源县| 于都县| 四子王旗|