Java內隱類(Java Inner Class)

內隱類是一個定義在Class中的Class,有static和非static兩種。inner class是外部類的一個成員變量。non-static的inner class可以訪問外部類的所有變量。因爲inner class是外部類的一個成員變量,其可以用public、private、protected和package private等modifier來定義。

       Static Nested Classes

       正如一個類的靜態變量,static inner class屬於其外部類,不屬於外部類的instance(object),他不能訪問外部類的非靜態變量。static inner class只能通過外部類的instance(object)來訪問外部類的非靜態變量。

       注意:

         static inner class其實和普通的類基本一樣。要想使用靜態內部類需要使用以下格式:

         OuterClass.StaticNestedClass  nestedObject =new  OuterClass.StaticNestedClass();

         Non-static Inner Class

       Non-static inner class與外部類的非靜態成員變量類似,它屬於外部類的instance(對象),能夠訪問外部類對象的所有成員變量和方法。由於其能夠訪問外部類對象的成員變量和方法,因此他不能定義靜態變量和靜態方法。


內部類的對象只能存在於外部類的對象之中

       由於內部類的對象只能存在於外部類的對象之中,因此,要聲明一個內部類的對象,需要先實例化外部類的一個對象。具體的語法格式如下:

        OuterClass.InnerClass innerObject = outerObject.new InnerClass();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章