class="area">
內部類中最常見的就是成員內部類,也稱為普通內部類。我們來看如下代碼:

運行結果為:

從上面的代碼中我們可以看到,成員內部類的使用方法:1、 Inner 類定義在 Outer 類的內部,相當於 Outer 類的一個成員變量的位置,Inner 類可以使用任意訪問控制符,如 public 、 protected 、 private 等2、 Inner 類中定義的 test() 方法可以直接訪問 Outer 類中的數據,而不受訪問控制符的影響,如直接訪問 Outer 類中的私有屬性a3、 定義了成員內部類後,必須使用外部類對象來創建內部類對象,而不能直接去 new 一個內部類對象,即:內部類 對象名 = 外部類對象.new 內部類( );4、 編譯上面的程序後,會發現產生了兩個 .class 文件

其中,第二個是外部類的 .class 文件,第一個是內部類的 .class 文件,即成員內部類的 .class 文件總是這樣:外部類名$內部類名.class另外,友情提示哦:1、 外部類是不能直接使用內部類的成員和方法滴

可先創建內部類的對象,然後通過內部類的對象來訪問其成員變量和方法。2、 如果外部類和內部類具有相同的成員變量或方法,內部類默認訪問自己的成員變量或方法,如果要訪問外部類的成員變量,可以使用 this 關鍵字。如:

運行結果: