10、Java——內部類


 1、類中定義類

(1)當一類中的成員,作為另外一種事物的時候,這個成員就可以定義為內部類.

(2)分類:①成員內部類

              ②靜態內部類

              ③私有內部類

              ④局部內部類

              ⑤匿名內部類 

              ⑥Lambda表達式 

 

2、成員內部類

(1)一個類定義在外部類的成員位置就為成員內部類,具有類的特點,繼承,實現...成員內部類具有成員的特點,被成員修飾符修飾。

(2)注意:①在成員內部類中不能定義靜態內容,除了靜態常量,靜態內部類才能任意定義靜態內部。

        ②在成員內部類中可以使用外部類中的成員,包括私有的,靜態的。

        ③在外部類中可以跟隨成員內部類的對象使用成員內部類的成員。

        ③成員內部類的對象性需要通過外部類對象構建  外部類名.內部類類名 引用 = new 外部類().new 內部類()。

        ⑤跟隨內部類的對象使用內部類的成員,注意訪問權限。

 

3、靜態內部類:

(1)可以定義靜態內容(成員),成員內部類中不可以直接定義靜態內容除了靜態常量以外。

(2)靜態內部類中可以直接使用外部類中靜態內容,需要通過外部類對象使用外部類中的成員(因為內部類本身是靜態的)。

(3)外部類中可以直接通過內部類對象使用內部類成員,可以通過內部類的類名使用內部類靜態內容。

(4)其他類中使用靜態內部類中內容:

①靜態內部類中的靜態內容 : 外部類類名.內部類類名.靜態內容

②靜態內部類中的成員內容: new 外部類類名.內部類類名();  通過內部類對象調用它成員。

4、私有內部類

        只能在當前外部類中通過內部類對象使用。

5、局部內部類

(1)不能被成員修飾符等修飾(public,private,protected,static)。

(2)局部內部類中不能定義靜態內容,除了靜態常量。

(3)局部內部類中可以直接使用外部類成員,可以使用所在方法中的局部變量。

(4)局部內部類智能在當前所在的方法中通過內部類對象使用,其他位置無法使用。

(5)在局部內部類中使用了所在方法中的局部變量|形參,這個局部變量會默認被final修飾。

(6)jdk8開始默認被final修飾,jdk7及之前需要顯示被final修飾

 

6、匿名內部類

(1)作用: 用來簡化沒有本身自己作用的實現類 | 子類。

(2)上層 : 接口 | 抽象類。

 

7、Lambda 表達式

jdk8新增lambda表達式

(1)作用: 為了簡化匿名內部類對象

(2)前提: 函數式接口

(3)函數式接口 : 只有一個必須被重寫的抽象方法的接口

(4)強制檢測是否為函數式接口:注解: @FunctionalInterface

(5)語法:

            ()->{}

            () :  匹配要重寫的抽象方法的參數列表

            -> : 箭頭函數  箭頭符號

            {} : 要重寫的抽象方法的方法體

 

 

8、異常:

程序無法正常執行完畢

(1)異常體系:

            Throwable

            /       \

         Error      Exception

(2)Error : 錯誤,一般由虛擬機生成並脫出,無需要程序猿管理

(3)Exception : 異常

①CheckedException 編譯時異常|檢查時異常:  發生在程序編譯期間程序如果遇到編譯時異常沒有處理,程序無法正常運行

②RuntimeException 運行時異常 : 發生程序運行期間一般可以通過增強程序健壯性的代碼處理 if

(4)注意 :如果程序遇到異常沒有處理,無法繼續執行

(5)常見的一些運行時異常:

①空指針異常 NullPointerException

②數組越界異常 ArrayIndexOutOfBoundsException

③數組長度負數異常 NegativeArraySizeException

④類型轉換異常 ClassCastException

⑤數學異常 ArithmeticException

⑥數字格式異常 NumberFormatException



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM