Java的內部類

類是java中定義的一個獨立的程序單元,在某種狀況下也能夠把一個類放在另一個類的內部定義,這定義在內部的類就叫內部類或嵌套類。java

1.內部類提供了更好的封裝,把一個內部類隱藏在外部類以內。內部類成員能夠直接訪問外部類的私有數據。內部類成員能夠直接訪問外部類的私有數據,匿名內部類是適合用於建立那些僅須要使用一次的類。內部類和外部類的區別,內部類能夠比外部類多使用三個修飾符private、protected、static;非靜態內部類不能擁有靜態成員對象

2.通常內部類都被做爲內部類定義,和類中的成員變量、方法、構造器、初始化塊的類成員類似的類成員,局部內部類和匿名內部類則不是類成員。成員內部類能夠分爲兩種:靜態內部類和非靜態內部類。外部類只能有兩個做用域一個是同一個包內和任意位置,而內部類可使同一個包內,同一個類內,父子類和任何位置。內部類編譯完後也是一個.class文件,但依託於父類。繼承

3.用static修飾的靜態內部類,靜態內部類不屬於外部類的對象而是屬於外部類的自己。靜態內部類是外部類的一個靜態成員,所以外部類的全部方法、全部初始化塊可使用靜態內部類來定義變量、建立對象。但外部類依然不能直接訪問靜態內部類的成員。接口

4.內部類的使用,在外部類裏使用內部類和不一樣的類同樣,定義變量建立實例和做爲父類被繼承;在外部類之外使用非靜態內類(不能用private修飾);在外部類之外使用靜態內部類。作用域

5.局部內部類是定義方法內部的一個類,對於局部成員而言,無論是局部變量還局部內部類,他們的上一級程序單元是方法而不是類,使用static修飾他們沒有任何意義。編譯

6.匿名內部類,建立匿名內部類是會當即建立一個類的實例,這個類定義當即消失,匿名內部類不能重複使用。匿名內部類的格式以下:new 實現接口()| 父類構造器(實參列表){  匿名內部類的類體方法 };匿名內部類不能是抽象的類、匿名內部類不能定義構造器。class

相關文章
相關標籤/搜索