1. 程式人生 > >java學習 十六、內部類

java學習 十六、內部類

定義:內部類是指在一個外部類的內部再定義一個類。

內部類作為外部類的成員,並且依附於外部類而存在。

內部類可為靜態,可用protected和private修飾,而外部類只能使用public和預設的包訪問許可權。

內部類有4中形式:靜態內部類、成員內部類、區域性內部類、匿名內部類

靜態內部類:

    1)使用static修飾,宣告在類中。

    2)靜態內部類中可以剛問外部類的靜態成員。

    靜態內部類的使用方法如下圖所示:

        

成員內部類:

1)宣告在類中,不使用static修飾,具有類的成員特性,也就是,必須有類的例項才能建立內部類例項。

    2)成員內部類例項可以訪問共享外部類的成員變數。

    3)成員內部類中不能存在static修飾的方法、屬性或者程式碼塊等

    成員內部類的使用方法如下圖:

        

區域性內部類:

    把類宣告在方法中就是區域性內部類,作用域僅為所在的方法,類似區域性變數。

    區域性內部類的使用方法如下圖所示:

        

匿名內部類:

    1)匿名內部類可以寫在任何地方,就像一般的語句。

    2)語法一般為:Xxx  xxx = new Xxx(){……}

    3)匿名類是對原類的繼承,同時建立了例項,{}內部就是繼承後的類體。類體中可以使用原類的所有語法。

    4)匿名類中不可以寫構造器

    5)匿名類可以從抽象類或者介面繼承,必須提供抽象方法的實現。

    匿名內部類的使用方法如下圖所示: