201711671118《Java程式設計》第七章總結
7.1內部類
①類除了可以有成員變數和方法外,還可以擁有一種成員:內部類。
②在一個類中定義另一個類,這樣的類稱為內部類,包含內部類的類稱為內部類的外嵌類。
③內部類和外嵌類的關係:
外嵌類的成員變數在內部類仍然有效,內部類中的方法也可以呼叫外嵌類中的方法。
內部類的類體中不可以宣告類變數和類方法。
外嵌類的類體中可以用內部類宣告物件,作為外嵌類的成員。
內部類僅供它的外嵌類使用,其他類不可以用某個類的內部類宣告物件。
④內部類對應的位元組碼檔案的名字格式是“’外嵌類名$內部類名”
⑤內部類可以被修飾為static內部類,static內部類是外嵌類中的一種靜態資料型別,這樣一來,程式就可以在其他類中使用static內部類來建立物件。但是static內部類不能操作外嵌類的例項成員變數。
⑥非內部類不可以是static類。
7.2 匿名類
①JAVA允許直接使用一個類的子類的類體建立一個子類物件,建立子類物件時,除了使用父類的構造方法外還有子類去掉類聲明後的類體,稱為匿名類。
②匿名類特點:
匿名類可以繼承父類的方法也可以重寫父類的方法。
匿名類一定是內部類。
匿名類可以訪問外嵌類中的成員變數和方法,匿名類的類體不可以宣告static成員變數和方法。
③JAVA允許直接用介面名和應該類體建立一個匿名物件,類體被認為是實現介面的類去掉類聲明後的類體,被稱為匿名類。
7.3 異常類
①JAVA使用throw關鍵字丟擲一個Exception子類的例項來表示異常發生。
②允許方法呼叫過程中丟擲異常物件,終止當前方法的繼續執行。
③使用try-catch語句來處理異常。將可能出現異常的操作方法放入try語句中,一旦try部分丟擲異常物件,或呼叫某個可能丟擲異常物件的方法,並且該方法丟擲異常物件,那麼try部分將立刻結束執行。,轉向執行相應的catch語句。
④可以擴充套件Exception類定義自己的異常類,然後根據程式的需要來規定哪些方法產生這樣的異常。一個方法在宣告時可以使用throws關鍵字宣告要產生的若干個異常,並在該方法的方法體中具體給出產生異常的操作,即用相應的異常類建立物件,並使用throw關鍵字丟擲該異常物件,導致該方法結束執行。
7.4 斷言
①斷言語句一般用於不準備通過捕獲異常來處理的錯誤,例如,當發生某個錯誤時,要求程式必須立即停止執行。
②使用關鍵字assert宣告一條斷言語句,有兩種格式
assert booleanExpression;
assert booleanExpression: messageException;(值是false時,程式停止執行,輸出 messageException表示式的值。
7.5 finally語句
語法格式:
try();
catch(ExceptionSubClass e){}
finally{}
執行機制:在執行try-catch語句後,執行finally語句(無論try是否異常都執行)。
特殊情況:
①如果try-catch語句中執行return語句,那麼finally語句還會被執行。
②try-catch語句中執行了System.exit(0); ,則不執行finally語句。