關於Java的一些小總結 內部類 外部類

2021-08-18 22:35:45 字數 2227 閱讀 4399

內部類一般來說共分為4種:常規內部類、靜態內部類、區域性內部類、匿名內部類

一.常規內部類:

常規內部類沒有用static修飾且定義在在外部類類體中。

1.常規內部類中的方法可以直接使用外部類的例項變數和例項方法。

2.在常規內部類中可以直接用內部類建立物件

執行結果如下:

二.靜態內部類:與類的其他成員相似,可以用static修飾內部類,這樣的類稱為靜態內部類。靜態內部類與靜態內部方法相似,只能訪問外部類的static成員,不能直接訪問外部類的例項變數,與例項方法,只有通過物件引用才能訪問。

由於static內部類不具有任何對外部類例項的引用,因此static內部類中不能使用this關鍵字來訪問外部類中的例項成員,但是可以訪問外部類中的static成員。這與一般類的static方法想通

例如:

執行結果如下:

三.區域性內部類:在方法體或語句塊(包括方法、構造方法、區域性塊或靜態初始化塊)內部定義的類成為區域性內部類。

區域性內部類不能加任何訪問修飾符,因為它只對區域性塊有效。

1).區域性內部類只在方法體中有效,就想定義的區域性變數一樣,在定義的方法體外不能建立區域性內部類的物件

2).在方法內部定義類時,應注意以下問題:

①.方法定義區域性內部類同方法定義區域性變數一樣,不能使用private、protected、public等訪問修飾說明符修飾,也不能使用static修飾,但可以使用final和   abstract修飾

②.方法中的內部類可以訪問外部類成員。對於方法的引數和區域性變數,必須有final修飾才可以訪問。

③.static方法中定義的內部類可以訪問外部類定義的static成員

例如:

結果如圖所示:

四.匿名內部類:定義類的最終目的是建立乙個類的例項,但是如果某個類的例項只是用一次,則可以將類的定義與類的建立,放到與一         起完成,或者說在定義類的同時就建立乙個類

以這種方法定義的沒有名字的類成為匿名內部類。

宣告和構造匿名內部類的一般格式如下:

new classorinte***cename()

1.匿名內部類可以繼承乙個類或實現乙個介面,這裡的classorinte***cename是匿名內部類所繼承的類名或實現的介面名。但匿名內部類不能同時實現乙個介面和繼承乙個類,也不能實現多個介面。如果實現了乙個介面,該類是object類的直接子類,匿名類繼承乙個類或實現乙個介面,不需要extends和implements關鍵字。

2.由於匿名內部類沒有名稱,所以類體中不能定義構造方法,由於不知道類名也不能使用關鍵字來建立該類的例項。實際上匿名內部類的定義、構造、和第一次使用都發生在同樣乙個地方。此外,上式是乙個表示式,返回的是乙個物件的引用,所以可以直接使用或將其複製給乙個物件變數。例:

typename obj=new name();

同樣,也可以將構造的物件作為呼叫的引數。例:

somemethod(new name());

例如:

結果如圖所示:

外部類,顧名思義,就是外部的類。定義乙個類a,在a的內部再定義乙個類b,則a就是外部了類,b就是內部類

內部類可以訪問外部類所有的方法和屬性,如果內部類和外部類有相同的成員方法和成員屬性,內部類的成員方法呼叫要優先於外部類即內部類的優先順序比較高(只限於類內部,在主方法內,內部類物件不能訪問外部類的成員方法和成員屬性),外部類只能訪問內部類的靜態常量或者通過建立內部類來訪問內部類的成員屬性和方法。

關於java內部類的總結

內部類總結 1.首先,把內部類作為外部類的乙個特殊的成員來看待,因此它有類成員的封閉等級 private protected,預設 friendly public 它有類成員的修飾符 static,final,abstract 2.非靜態內部類nested inner class,內部類隱含有乙個外...

java內部類總結

內部類 1,概述 內部類是指在乙個外部類的內部再定義乙個類。內部類作為外部類的乙個成員,並且依附於外部類而存在的。內部類可為靜態,可用protected和private修飾。而外部類不可以 外部類只能 使用public和default 2,分類 成員內部類 區域性內部類 靜態內部類 匿名內部類 圖形...

Java內部類總結

內部類 1,概述 內部類是指在乙個外部類的內部再定義乙個類。內部類作為外部類的乙個成員,並且依附於外部類而存在的。內部類可為靜態,可用protected和private修飾。而外部類不可以 外部類只能 使用public和default 2,分類 成員內部類 區域性內部類 靜態內部類 匿名內部類 圖形...