91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

什么是內部類

發布時間:2021-10-23 10:59:55 來源:億速云 閱讀:148 作者:iii 欄目:web開發

這篇文章主要介紹“什么是內部類”,在日常操作中,相信很多人在什么是內部類問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”什么是內部類”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

本文內容

什么是內部類

什么是內部類?

我們將一個類A定義在另外一個類B中,那么這個類A就叫內部類。

為什么需要內部類呢?

有三點原因:

內部類方法可以訪問該類定義的所在的作用域中的數據,包括私有的數據。

內部類可以對同一個包中的其他類隱藏起來。

當想要定義一個回調函數且不想編寫大量代碼時,使用匿名內部類比較方便。

內部類有什么特性?

內部類可以用多個實例,每個實例都有自己的狀態信息,并且與其他外圍對象的信息相互獨立。

在單個外圍類中,可以讓多個內部類以不同的方式實現同一個接口,或者繼承同一個類。

創建內部類對象的時刻并不依賴于外圍類對象的創建。

內部類并沒有令人迷惑的“is-a”關系,他就是一個獨立的實體。

內部類提供了更好的封裝,除了該外圍類,其他類都不能訪問。

來自《Think in java》

內部類有哪些種類?

成員內部類:和成員變量一個級別

局部內部類:在方法里的內部類

匿名內部類:基本上屬于接口的實現類,一次性使用的場景。

靜態內部類:static修飾的成員內部類

如何使用內部類?

創建靜態內部類對象的一般形式為:

外部類類名.內部類類名 xxx = new 外部類類名.內部類類名()

創建成員內部類對象的一般形式為:

外部類類名.內部類類名 xxx = 外部類對象名.new 內部類類名()

上面就是做一個簡單的回答,如果面試還可能會繼續問,那就得繼續往下看。

這是一個黃金分割點,以上這部分是初級面試題。

面試回答:

什么是內部類

常見高級面試題

為什么成員內部類可以無條件訪問外部類的成員?

解題思路:先寫個案例,證明是不是正確的,然后再深層次的去了解成員內部類和外部內的關系。

public class OuterClass {         class InnerClass{         }     }

代碼中InnerClass就是成員內部類。使用javac對OuterClass進行編譯,也可以在IDEA或者eclipse中進行編譯,編譯完后會發現居然有兩個.class文件。

什么是內部類

  • 外部類:OuterClass.class

  • 成員內部類:OuterClass$InnerClass.class

使用javap 命令來查看這兩個class文件:

OuterClass.class內容為如下:

什么是內部類

就是個簡單的類,沒什么不一樣的地方。我們主要還是看看內部類的這個.class文件內容是否有些特別。

什么是內部類

OuterClass$InnerClass.class內容如下:

從上面的內容中我們可以看到四點:

1,定義了一個常量,指向外部類對象的地址。

2,內部類默認有個構造方法,有參數的,參數為外部類。

3,給成員變量1(this$0)賦值為外部類對象地址。

4,有兩個成員變量,一個是自己,另外一個是指向外部類對象地址的變量。

所以這里就證明了,為什么內部類能訪問外部類的成員(靜態內部類是不依賴于外部類的,也就說可以在不創建外部類對象的情況下創建內部類的對象 )。

另外也可以得出一個結論就是:成員內部類依賴于外部類,必須是外部類想創建好對象,內部類才可以創建對象。

到此,關于“什么是內部類”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節
推薦閱讀:
  1. C++ 內部類
  2. 內部類

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

木兰县| 郁南县| 伊宁县| 濉溪县| 小金县| 资讯| 宾阳县| 山丹县| 洱源县| 随州市| 缙云县| 曲周县| 德昌县| 长岭县| 巩留县| 罗山县| 曲麻莱县| 巴南区| 宣武区| 卫辉市| 思茅市| 阿拉善盟| 兴业县| 天峻县| 桂平市| 牟定县| 阿克陶县| 武乡县| 穆棱市| 临清市| 渝北区| 西充县| 宾阳县| 福鼎市| 黑龙江省| 仪征市| 清水河县| 辽阳市| 都匀市| 营山县| 塔河县|