複製鏈接
請複製以下鏈接發送給好友

成員內部類

鎖定
成員內部類,是一種可以訪問外部類的私有成員或屬性。
中文名
成員內部類
類    型
變量
特    點
可以訪問外部類的私有成員或屬性
注    意
要生成(new)一個內部類對象
成員內部類
作為外部類的一個成員存在,與外部類的屬性、方法並列。
內部類和外部類的實例變量可以共存。
在內部類中訪問實例變量:this.屬性
在內部類訪問外部類的實例變量:外部類名.this.屬性。
在外部類的外部訪問內部類,使用out.inner.
成員內部類的特點:
1.內部類作為外部類的成員,可以訪問外部類的私有成員或屬性。(即使將外部類聲明為PRIVATE,但是對於處於其內部的內部類還是可見的。)
2.用內部類定義在外部類中不可訪問的屬性。這樣就在外部類中實現了比外部類的private還要小的訪問權限。
注意:內部類是一個編譯時的概念,一旦編譯成功,就會成為完全不同的兩類。
對於一個名為outer的外部類和其內部定義的名為inner的內部類。編譯完成後出現outer.class和outer$inner.class兩類。
3.成員內部類不能定義靜態成員,只能定義對象成員。
建立內部類對象時應注意:
在外部類的內部可以直接使用inner s=new inner( );(因為外部類知道inner是哪個類,所以可以生成對象。)
而在外部類的外部,要生成(new)一個內部類對象,需要首先建立一個外部類對象(外部類可用),然後在生成一個內部類對象。
Outer o=new Outer( );
Outer.Inner in=o.new.Inner( )。
4、創建成員內部類實例時,外部類的實例必須已經存在。
5、當內部類和外部類有同名的成員時,內部類可通過 外部類名.this.變量名 訪問外部類成員。