內(nèi)部類

特點(diǎn):

上溯造型的時(shí)候,內(nèi)部類除了對(duì)該類可以見,對(duì)任何父類和子類都不可見。
普通類不能被設(shè)置為protected何private類型,但是內(nèi)部類可以。

分類:

非靜態(tài)內(nèi)部類,匿名內(nèi)部類,局部內(nèi)部類,靜態(tài)內(nèi)部類。

非靜態(tài)內(nèi)部類:

對(duì)象依賴外部類對(duì)象的存在而存在,會(huì)持有外部類對(duì)象的引用。
非靜態(tài)內(nèi)部類直接持有外部類的對(duì)象的引用
外部類不直接持有非靜態(tài)內(nèi)部類的對(duì)象的引用

匿名內(nèi)部類:

匿名內(nèi)部類的方法形參類型為final,匿名內(nèi)部類中傳入的變量與原變量不是同一個(gè)引用,是拷貝的變量,為了數(shù)據(jù)同步就不能夠修改原變量,也就不存在修改完不同步的問題了。
匿名內(nèi)部類無法聲明構(gòu)造函數(shù)。

局部內(nèi)部類:

局部內(nèi)部類和非靜態(tài)內(nèi)部類一樣,但是其作用范圍在作用域(scope)范圍內(nèi),在作用域外部無法顯式地引用或生成一個(gè)局部內(nèi)部類的實(shí)例。
局部內(nèi)部類直接持有外部類的對(duì)象的引用

Tips: 這三種內(nèi)部類不能有任何static數(shù)據(jù),包括static內(nèi)部類,其對(duì)象的創(chuàng)建完全依賴外部類。

靜態(tài)內(nèi)部類:

不依賴外部類對(duì)象而存在
不能引用任何外部類的非static變量和方法

內(nèi)部類的繼承:

使用enclosingClassReference.super() ,在繼承其他類的內(nèi)部類的時(shí)候,構(gòu)造器一定要傳入一個(gè)其外部類的對(duì)象才能使用,并在構(gòu)造器中利用傳入的對(duì)象調(diào)用該對(duì)象的構(gòu)造器,即在構(gòu)造器中調(diào)用instance.super();

類的繼承與內(nèi)部類的覆蓋

當(dāng)子類繼承父類時(shí),擁有相同命名的內(nèi)部類,這并不能夠覆蓋父類的內(nèi)部類,其生成規(guī)則和調(diào)用還是根據(jù)對(duì)象的實(shí)際類型。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 問:Java 常見的內(nèi)部類有哪幾種,簡單說說其特征? 答:靜態(tài)內(nèi)部類、成員內(nèi)部類、方法內(nèi)部類(局部內(nèi)部類)、匿名內(nèi)...
    Little丶Jerry閱讀 2,233評(píng)論 0 1
  • Java 內(nèi)部類 分四種:成員內(nèi)部類、局部內(nèi)部類、靜態(tài)內(nèi)部類和匿名內(nèi)部類。 1、成員內(nèi)部類: 即作為外部類的一個(gè)成...
    ikaroskun閱讀 1,358評(píng)論 0 13
  • 搞懂 JAVA 內(nèi)部類 前些天寫了一篇關(guān)于 2018 年奮斗計(jì)劃的文章,其實(shí)做 Android 開發(fā)也有一段時(shí)間了...
    醒著的碼者閱讀 647評(píng)論 0 0
  • 這是麗江游的第二天——悠閑快樂 今天呢就是花了280元買了一個(gè)旅游套餐= ̄ω ̄=(騎馬+午餐+下午茶+劃船+來回接...
    MrET閱讀 367評(píng)論 0 0
  • 今天不到七點(diǎn)就聽到宋啟愛房間里傳出聲響。本想讓她睡個(gè)懶覺,沒想到起的還挺早。孩子們接連都起來了我也就沒法賴床...
    宋啟愛媽媽閱讀 98評(píng)論 0 0

友情鏈接更多精彩內(nèi)容