Java入門 第八彈

2021-08-14 20:34:59 字數 1357 閱讀 7695

來由:我們希望定義乙個類可以訪問另乙個類裡面的私有成員。

一、內部類(第一種形式):定義在乙個類內部的類。

1)內部類擁有訪問外部類所有成員的許可權(包括私有成員)。

2)外部類可不可以直接訪問內部類的成員?(需要通過內部類的物件來訪問)

3)內部類可以看成是乙個成員類,所以成員變數和成員方法所具有的屬性,內部類同樣具有。

4)定義在類的內部的類,編譯後會不會生成.class檔案?

5)在內部類中,如何訪問內部類自身物件和外部類的物件?

6)內部類同樣可以用static來修飾。

非靜態的內部類:屬於外部類的物件的成員。

靜態的內部類:靜態內部類是在建立外部類的時候初始化

靜態內部類只能訪問靜態的外部類成員。

靜態的方法只能訪問靜態的成員,靜態的內部類也是如此。

//其他類如何呼叫內部類中的方法?

shop.girl sg = new shop().new girl();

sg.eat();

問:如何去訪問乙個類中的私有成員?

1. 內部類

2. 封裝

3. 反射

二、內部類(第二種形式):

定義在方法內部的類也是內部類。

如何建立內部類的物件?能和第一種形式一樣嗎?

1)定義在方法內的內部類,編譯後生成的.class檔案又是什麼形式的?

2)方法呼叫完畢,內部類的類物件是否還存在?

jdk1.8版本 定義在方法內部的內部類可以直接訪問外部類的變數(成員變數、區域性變數)

3)定義在方法內部的內部類訪問外部類的非成員變數時,要用final修飾。why?

例項變數、物件、陣列駐留在堆上

區域性變數、成員方法駐留在棧上,它只存在於方法的生命期內,呼叫方法結束,棧結構就被刪除,所以無法保證區域性變數的存活期和堆中的物件一樣長。

4)能夠應用於方法內部類的修飾符有哪些?abstract和final。

5)在靜態方法內宣告的內部類只能訪問外部類的靜態成員。

第一種形式的內部類和第二種形式的內部類有哪些細微的區別:

三、匿名類:匿名內部類,乙個沒有指定名字的內部類。

匿名類能否產生.class檔案?又是怎樣表示的?

語法: new 父類名()

注:父類必須是乙個已知類(介面、抽象類、普通類)。

若父類是介面,那麼這個匿名類就實現了這個介面。

若父類是抽象類或普通類,那麼這個匿名類就繼承了這個抽象類或普通類。

匿名內部類永遠是作為一條語句的一部分建立,因此,不要忘記在該類定義之後使用大括號關閉該語句。

匿名內部類不能擴充套件乙個類,或實現乙個(多個)介面。

使用內部類的目的:

C語言入門 第八周 作業01

題目內容 你的程式要讀入一行文字,其中以空格分隔為若干個單詞,以 結束。你要輸出這行文字中每個單詞的長度。這裡的單詞與語言無關,可以包括各種符號,比如 it s 算乙個單詞,長度為4。注意,行中可能出現連續的空格。輸入格式 輸入在一行中給出一行文字,以 結束,結尾的句號不能計算在最後乙個單詞的長度內...

Vue learning 入門 第一彈

個人部落格 src script div newvue script 條件判斷式,根據表示式的真偽進行頁面處理 v if seen 2017最新發賣div 處理陣列迴圈,將資料迴圈顯示到頁面時 遊戲列表h3 v if seen 2017最新發賣div v for game in games 元li ...

MOOC C語言入門 第八周作業 單詞長度

題目內容 你的程式要讀入一行文字,其中以空格分隔為若干個單詞,以 結束。你要輸出這行文字中每個單詞的長度。這裡的單詞與語言無關,可以包括各種符號,比如 it s 算乙個單詞,長度為4。注意,行中可能出現連續的空格。輸入格式 輸入在一行中給出一行文字,以 結束,結尾的句號不能計算在最後乙個單詞的長度內...