Java之內部類

2021-09-24 10:48:28 字數 1988 閱讀 9791

內部類( inner class )就是定義在另外乙個類裡面的類。與之對應,包含內部類的類被稱為外部類。

內部類的主要作用如下:

內部類提供了更好的封裝,可以把內部類隱藏在外部類之內,不允許同乙個包中的其他類訪問該類

內部類的方法可以直接訪問外部類的所有資料,包括私有的資料

內部類所實現的功能使用外部類同樣可以實現,只是有時使用內部類更方便

內部類可分為以下幾種:

例子:定義了成員內部類 inner ,外部類名為 helloworld 。執行結果為 :welcome to imooc!注意如何建立內部類物件和呼叫內部類方法。

//外部類helloworld

public class helloworld

}

public static void main(string args)

}

內部類中最常見的就是成員內部類,也稱為普通內部類。我們來看如下**:

執行結果為:

從上面的**中我們可以看到,成員內部類的使用方法

inner 類定義在 outer 類的內部,相當於 outer 類的乙個成員變數的位置,inner 類可以使用任意訪問控制符,如 public 、 protected 、 private 等

inner 類中定義的 test() 方法可以直接訪問 outer 類中的資料,而不受訪問控制符的影響,如直接訪問 outer 類中的私有屬性a

定義了成員內部類後,必須使用外部類物件來建立內部類物件,而不能直接去 new 乙個內部類物件,即:內部類 物件名 = 外部類物件.new 內部類( );

編譯上面的程式後,會發現產生了兩個 .class 檔案

其中,第二個是外部類的 .class 檔案,第乙個是內部類的 .class 檔案,即成員內部類的 .class 檔案總是這樣:外部類名$內部類名.class

另外,友情提示哦:

1、 外部類是不能直接使用內部類的成員和方法滴,可先建立內部類的物件,然後通過內部類的物件來訪問其成員變數和方法。

2、如果外部類和內部類具有相同的成員變數或方法,內部類預設訪問自己的成員變數或方法,如果要訪問外部類的成員變數,可以使用 this 關鍵字。如:

執行結果:

靜態內部類是 static 修飾的內部類,這種內部類的特點是:

1、 靜態內部類不能直接訪問外部類的非靜態成員,但可以通過new 外部類().成員的方式訪問

2、 如果外部類的靜態成員與內部類的成員名稱相同,可通過「類名.靜態成員」訪問外部類的靜態成員;如果外部類的靜態成員與內部類的成員名稱不相同,則可通過「成員名」直接呼叫外部類的靜態成員

3、 建立靜態內部類的物件時,不需要外部類的物件,可以直接建立內部類 物件名= new 內部類();

執行結果 :

方法內部類就是內部類定義在外部類的方法中,方法內部類只在該方法的內部可見,即只在該方法內可以使用。

一定要注意哦:由於方法內部類不能在外部類的方法以外的地方使用,因此方法內部類不能使用訪問控制符和 static 修飾符。

參考慕課網課程

Java之內部類

1 內部類的概念 宣告在另外乙個類裡面的類就是內部類。2 內部類的4種形式 1 靜態內部類 2 非靜態成員內部類 3 區域性內部類 4 匿名內部類 1 語法格式 在匿名子類中呼叫父類的無參構造 new 父類 在匿名子類中呼叫父類的有參構造 new 父類 實參列表 介面沒有構造器,這裡表示匿名子類呼叫...

java基礎之內部類

內部類分為四個模組 靜態內部類 非靜態內部類 區域性內部類 匿名內部類 首先我們來講講這幾個模組的的主要作用與區別 靜態模組 非靜態內部類 區域性內部類 匿名內部類 下面為兩個類,是為了實現以上模組而建立的,如下 innerclass類 package innerclass public void ...

Java學習之內部類

把類a定義在類b的內部,類a 就被稱為內部類 a 內部類可以直接訪問外部類成員,包括私有 b 外部類要訪問內部類額成員,必須建立物件 1 根據位置 成員位置 成員內部類 區域性位置 區域性內部類 2 成員內部類 外界建立物件 外部類名.內部類名 物件名 外部類物件.內部物件 3 內部類關鍵字限定 a...