Java內部類學習筆記

2021-09-02 16:51:45 字數 2220 閱讀 7117

[size=x-large][b]內部類概念[/b][/size]

所謂內部類(inner class),顧名思義,就是將乙個類定義在定義在另乙個類的內部。內部的類稱之為內部類

public class outer

}

[b]特點[/b]

[list]

[*]內部類可以很好的實現隱藏,可以使用protected、private修飾符。

[*]內部類可以直接訪問外部類的所有成員,包括私有的成員。

[*]外部類不能直接訪問內部類的成員,必須首先建立內部類的物件才可以訪問。

[*]內部類可以解決一些問題,比如間接地實現多繼承。可以避免修改介面而實現同乙個類中兩個同名方法的呼叫。

[/list]

methodinnerclassdemo

abstract class b

inte***ce c

class a extends b implements c

private class cclass implements c

}public void metho2()

}

[b]成員內部類及應用[/b]

[b]特點:[/b]

[list]

[*]成員內部類屬於外部類的例項成員。相當於成員變數或方法。可以用public private protected default來修飾。在成員內部類中訪問外部類的成員方法和屬性,要使用「外部類名.this.成員方法」和「外部類名.this.屬性」的形式。

[*]建立成員內部類的例項使用「外部類名.內部類名 例項名 = 外部類例項名.new 內部類構造方法(引數)」的形式。

[/list]

[b]限制:[/b]

[list]

[*]成員內部類不能與外部類重名。

[*]不能在成員內部類中定義static屬性、方法和類(static final 形式的常量定義除外)。因為乙個成員內部類例項必然與乙個外部類例項關聯,static成員完全可以移動其3外部類中去。

[/list]

[b]靜態內部類及應用[/b]

[b]特點:[/b]

[list]

[*]使用static修飾的成員內部類叫靜態內部類。

[*]靜態內部類跟外部類沒有任何關係,只是在生成類名和類定義時有影響。靜態內部類可以看作與外部類平級的類。使用方式與外部類平級的類完全相同。

[*]建立靜態內部類的例項使用 外部類名.內部類名 例項名 = new外部類名.內部類名(引數)。

[/list]

[b]限制:[/b]

[list]

[*]靜態內部類不能與外部類重名。

[*]靜態內部類不嫩訪問外部類的非靜態屬性和方法。外部類不能訪問內部類的非靜態屬性和方法。

[/list]

[b]匿名內部類及應用[/b]

[b]特點:[/b]

[list]

[*]匿名內部類是沒有名稱的內部類,沒有辦法引用它們。必須在建立的時候,作為new語句的一部分來宣告並建立它們的例項。

[*]匿名內部類必須繼承乙個類(抽象的、非抽象的都可以)或者實現乙個介面。如果父類(或者父介面)是抽象類,則匿名內部類必須實現其所有抽象方法。

[*]new inte***ce/superclass(),這種形式的new語句宣告乙個新的匿名類,它對乙個給定的類進行拓展,或者實現乙個給定的介面,並同時建立該匿名類的乙個新例項。

[/list]

[b]區域性內部類及應用[/b]

[b]特點:[/b]

[list]

[*]定義在**塊{}、方法體中的類叫區域性內部類。

[*]區域性內部類訪問外部類的屬性和方法使用「外部類名.this.屬性名」和「外部類名.this.方法名(引數)」的形式。

[*]對外部世界完全隱藏,只能在其作用域內生成物件。

[/list]

[b]限制:[/b]

[list]

[*]區域性類不能加訪問修飾符,因為它們不是類成員。

[*]區域性內部類不能跟外部類重名。

[*]區域性內部類訪問作用域內的區域性變數,該區域性變數需要使用final修飾。

[/list]

[url=內部類使用[/url]

[url=不修改父類和介面的方法來分別呼叫同名的方法[/url]

[url=間接實現多繼承[/url]

[url=靜態內部類使用[/url]

Java學習筆記 內部類

內部類在android中有著大量的運用 內部類提供了更好的封裝 內部類可以直接訪問外部類的私有資料 匿名內部類適合那些只需要使用一次的類。非靜態內部類不能擁有靜態成員。內部模擬外部類可以多使用三個修飾符 private protected static 將乙個類定義在另乙個類的裡面,對裡面那個類就稱...

JAVA學習筆記10 內部類 匿名內部類

內部類 內部類可以直接訪問外部類成員 包括私有成員 外部類要訪問內部類中的成員必須要建立內部類的物件 class outer public void method 內部類一般用於類的設計 分析事物時 發現該事物描述中還有事物 而且這個事物還在訪問被描述事物的內容 這時就可以將還有的事物用內部類來描述...

內部類之Java學習筆記

建立內部類 可以將乙個類的定義放在另乙個類的內部,這就是內部類。如下所示 迭代器介面 inte ce selector 使用迭代器現實陣列的遍歷 public class sequence public void add object x 定義私有的內部類 private class sequenc...