內部類的型別分為三種:
1.在外部類(out)的方法體外部定義的內部類(inner)。
2.在外部類(out)的方法體內部定義的內部類(inner)。
3.在外部類(out)的方法體內部定義的隱匿內部類(static nested class)
4.在外部類(out)的方法體內部定義的靜態內部類(static inner class)
// an inner class
public
class
outer
public
class
inner
}
方法體外部的內部類可以有四種訪問許可權:public protect friendly private 決定了內部類對於其他類是否可見,內部類可以訪問外部類的普通成員屬性,內部類也可以在其他地方建立例項物件,但是需要先創造外部類的例項物件然後再創造內部類的例項物件。
// an highlighted block
outer out =
newouter
;outer.inner inner = out.
newinner()
;
// an inner class
public
class
outer}}
}
定義在方法體內部的內部類,不能夠有訪問型別的修飾符,在jdk1.7之前,方法體內的內部類只能夠訪問方法中的final變數,在1.8中去除了這個限制。
// an static nested inner class
public
class
outer
}}
匿名內部類需要實現某個介面或者繼承某個類/抽象類,匿名類沒有類名,所以沒有構造器,語法為:
new
supertype
(construction parameters)
外部在引用匿名類的時候,不需要再建立外部類的例項物件,可以直接創造static nested class,語法為:
outer.inner inner =
newouter.inner()
;
當內部類不需要被外部所引用的時候,可以在類的前面加上static。 關於對內部類的理解
關於內部類,由於本人經驗尚淺,在開發過程中幾乎沒用到過,所以我個人對內部類的作用理解就是 減少一些只使用一次的類,優化專案的結構。例如使用內部類作為引數傳遞。內部類按照在類中定義的位置可以劃分為兩大類 再細分可以分為4類,如下圖所示 內部類的共同特點 可以訪問外部類的所有成員,包括私有的 當內部類和...
內部類的理解
在類outer的內部再定義乙個類inner,這個inner就是內部類,outer則稱為外部類。內部類優點 方便的訪問外部類中的私有屬性,同時,外部類可以也可以方便的訪問內部類的私有屬性,這樣可以避免封裝帶來的操作結構複雜的問題。內部類 好處 可以方便的訪問外部類中的私有屬性。public class...
關於內部類
對內部類用的少,基本上都有點陌生了。今天看到乙個部落格感覺還不錯就轉了過來。先謝謝博主!1 關於內部類的說明 1 在乙個類中定義另外乙個類,這個類就叫做內部類 inner class 內部類的定義和普通類的定義沒什麼區別,它可以直接訪問和引用它的外部類的所有變數和方法 包括private 就像外部類...