關於內部類,由於本人經驗尚淺,在開發過程中幾乎沒用到過,所以我個人對內部類的作用理解就是:減少一些只使用一次的類,優化專案的結構。例如使用內部類作為引數傳遞。
內部類按照在類中定義的位置可以劃分為兩大類:
再細分可以分為4類,如下圖所示:
內部類的共同特點:
可以訪問外部類的所有成員,包括私有的
當內部類和外部類存在屬性同名時,遵循就近原則
區域性內部類的定位就是乙個屬性。
特點:定義在**或方法塊中
不能新增訪問修飾符,但可以被final修飾
作用域僅在定義的方法中或**塊中
當屬性重名需要訪問外部類的屬性是,使用:外部類名.this.屬性名呼叫
外部其他類無法訪問區域性內部類
外部類訪問內部類時,直接在作用域內new內部類物件即可
匿名內部類也是區域性內部類的一種,它在定義時沒有定義類名,當jdk會自動為其生成類名,格式為:外部類名$內部類序號。jdk底層建立匿名內部類後,類名就廢棄了,當建立出的物件還可以繼續使用。
new 類或介面(引數列表)
僅當基於類繼承實現內部類時,才會有引數列表,引數會自動傳遞給基類的構造器。成員內部類的定位是乙個成員屬性。
特點:可以新增任意的訪問修飾符。
作用域為外部類的整個類體。
外部類訪問內部類時,先建立內部類物件再進行訪問。
外部其他類訪問內部類時,可以通過外部類的物件new乙個內部類物件進行訪問;也可以在外部類中提供乙個返回內部類物件的公共方法供外部其他類訪問。
靜態內部類和普通成員內部類的區別是使用了static修飾,所以它的特性就是加上了static的特性。例如當屬性與外部類同名時,只需要外部類名.屬性名
既可訪問,因為static**塊中只能訪問static的屬性。
關於內部類的理解
內部類的型別分為三種 1.在外部類 out 的方法體外部定義的內部類 inner 2.在外部類 out 的方法體內部定義的內部類 inner 3.在外部類 out 的方法體內部定義的隱匿內部類 static nested class 4.在外部類 out 的方法體內部定義的靜態內部類 static ...
內部類的理解
在類outer的內部再定義乙個類inner,這個inner就是內部類,outer則稱為外部類。內部類優點 方便的訪問外部類中的私有屬性,同時,外部類可以也可以方便的訪問內部類的私有屬性,這樣可以避免封裝帶來的操作結構複雜的問題。內部類 好處 可以方便的訪問外部類中的私有屬性。public class...
關於內部類
對內部類用的少,基本上都有點陌生了。今天看到乙個部落格感覺還不錯就轉了過來。先謝謝博主!1 關於內部類的說明 1 在乙個類中定義另外乙個類,這個類就叫做內部類 inner class 內部類的定義和普通類的定義沒什麼區別,它可以直接訪問和引用它的外部類的所有變數和方法 包括private 就像外部類...