1. 程式人生 > >20165303第五周學習總結

20165303第五周學習總結

包含 運行時 ref 方法 catch 生成 tab 異常類 table

  • 學習總結知識點
    一、內部類

Java允許類可以有一種成員:內部類。

Java支持在一個類中定義另一個類,這個類稱做內部類,而包含內部類的類稱為內部類的外嵌類。

內部類和外部類之間的重要關系:
(1)內部類的外嵌類的成員變量在內部類中仍然有效,內部類中的方法也可以調用外嵌類中的方法;
(2)內部類的類體中不可以聲明變量和類方法,外嵌類的類體中可以用內部類聲明對象,作為外嵌類的成員;
(3)內部類僅供它的外嵌類使用,其他類不可以使用某個類的內部類聲明對象。

Java編譯器生成的內部類的字節碼文件的名字和通常的類不同,內部類對應的字節碼文件的名字格式是 “外嵌類名$內部類名”。

內部類可以被static修飾。
類是一種數據類型,那麽static內部類就是外嵌類中的一種靜態數據類型,這樣一來,程序就可以在其他類中使用static內部類來
創建對象,static內部類不能操作外嵌類中實例成員變量。

二、匿名類

Java允許我們直接用一個類的子類的類體創建一個子類對象,也就是說創建子類對象時,除了使用父類的構造方法還有類體
,此類體被認為是一個子類去掉類聲明後的類體稱做匿名類。

Bank的匿名子類:
new Bank() {
匿名類的類體
}; 註意:結尾加分號

匿名類可以繼承父類的方法也可以重寫父類的方法。

使用匿名類時,必然是在某個類中匿名類創建對象,因此匿名類一定是內部類。

匿名類可以訪問外嵌類中的成員變量和方法,匿名類的類體中不可以聲明static成員變量和static方法。

由於匿名類是一個子類,但沒有類名,所以用匿名類創建對象時,要直接使用父類的構造方法。

匿名對象的引用可以傳遞給一個匹配的參數。

與接口有關的匿名類:

Java允許直接用接口名和一個類體建立一個匿名對象。

假設Computable是一個接口,此類體被認為是實現了Computable接口的類去掉類聲明後的類體,稱做匿名類。

new Computable() {
實現接口的匿名類的類體
}

如果某個方法的參數是接口類型,那麽可以使用接口名和類體組合創建一個匿名對象傳遞給方法的參數,類體必須要重寫接口中的全部方法。

三、異常類

異常是指程序運行時可能出現的一些錯誤。

try — catch 語句

try {
包含可能發生異常的語句
}catch(ExceptionSubClass1 a) {

}catch(ExceptionSubClass1 b) {

}

一旦try部分拋出異常,或調用某個可能拋出異常對象的方法,並且該方法拋出了異常對象,那麽try部分將立刻結束執行,轉向相應的catch部分。

程序可以將發生異常後的處理放在catch部分。

try — catch語句可以由幾個catch組成,分別處理發生的相應異常。

各個catch參數中的異常類都是Exception的某個子類,表示try部分可能發生的異常,這些子類之間不能有父子關系,否則保留一個含有父類參數的catch即可。

自定義異常類

在編寫程序時可以擴轉Exception類定義自己的異常類,然後根據程序的需要來規定哪些方法產生這樣的異常。

一個方法在聲明時可以使用throws關鍵字聲明產生的若幹個異常,並在該方法的方法體中具體給出產生異常的操作,即用相應的異常類創建對象,並使用throw關鍵字拋出該異常對象,導致該方法結束執行。

程序必須在 try — catch 塊語句中調用可能發生異常的方法,其中catch的作用是捕捉throw關鍵字拋出的異常對象。

聲明該方法可能拋出的異常 public void someMethod() throws Exception { }
構造拋出的異常對象 throw new 異常類();
調用該方法試圖捕捉異常 try {
}catch( ) {
定義處理異常的代碼
}

  • 腳本運行
    技術分享圖片

  • 碼雲
    技術分享圖片

技術分享圖片

碼雲鏈接 https://gitee.com/BESTI-IS-JAVA-2018/20165303WeiYujava/tree/master/src

20165303第五周學習總結