五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

150天打卡Day23_內(nèi)部類

2021-05-18 11:34 作者:關(guān)阿姨的Java日記  | 我要投稿

內(nèi)部類

  • 內(nèi)部類即一個(gè)類中包含著另外一個(gè)類。里面的叫內(nèi)部類,外面的叫外部類

  • 內(nèi)部類只服務(wù)于外部類,對外不具備可見性

  • 內(nèi)部類通常只在外部類中創(chuàng)建

一共有四種內(nèi)部類,分別是成員內(nèi)部類、局部內(nèi)部類、匿名內(nèi)部類、靜態(tài)內(nèi)部類。

為什么需要內(nèi)部類

每個(gè)內(nèi)部類都能繼承一個(gè)接口的實(shí)現(xiàn),所以不論外部類是否繼承了某個(gè)實(shí)現(xiàn),對于內(nèi)部類沒有影響,內(nèi)部類使得多繼承變得更加完整。

定義成員內(nèi)部類

一個(gè)類可以定義在另一個(gè)類的內(nèi)部,定義在類內(nèi)部的類可以稱之為Inner,外部的類稱之為Outer;Inner類定義在Outer類的內(nèi)部,通常只服務(wù)于Outer類,不對外具備可見性。Inner類可以直接調(diào)用Outer類的成員及方法(包括私有的)。例如:

從如上代碼可以看出,可以直接從Inner類中直接調(diào)用Outer類私有變量name。

創(chuàng)建內(nèi)部類對象

一般情況下,Inner對象會(huì)在Outer對象中創(chuàng)建,Inner對象中會(huì)有一個(gè)隱式的引用指向創(chuàng)建它的Outer對象。

class YNHello { private String name="hello"; class SayHi{ public void say(){ //訪問修飾符為


實(shí)例化一個(gè)新的內(nèi)部類時(shí),需要使用外部類的實(shí)例.new的方式進(jìn)行實(shí)例化。

匿名內(nèi)部類

  • 若想創(chuàng)建一個(gè)類的對象,并且對象只被創(chuàng)建一次,此時(shí)該類不必命名,稱之為匿名內(nèi)部類對象



也可以用lambda表達(dá)式實(shí)現(xiàn)這種方式,lambda表達(dá)式是JAVA8的新特性,也是被廣大開發(fā)者期待已久的功能。Lambda表達(dá)式支持將代碼塊作為參數(shù),允許使用更簡潔的代碼來創(chuàng)建只有一個(gè)抽象方法的接口(函數(shù)式接口)的實(shí)例。

  • 注意事項(xiàng):在jdk1.7的版本下,匿名內(nèi)部類想訪問外部的變量,該變量必須是final的

?

面試題

內(nèi)部類有獨(dú)立的.class嗎?

?

有,每個(gè)類都會(huì)有相對應(yīng)的.class文件,$1/2這種形式的文件都是內(nèi)部類編譯后的結(jié)果

?大家記得給關(guān)阿姨點(diǎn)個(gè)關(guān)注呦


150天打卡Day23_內(nèi)部類的評論 (共 條)

分享到微博請遵守國家法律
政和县| 云林县| 紫阳县| 伊川县| 故城县| 齐河县| 安丘市| 永平县| 宜兰县| 孟村| 贵德县| 兰坪| 柞水县| 白水县| 岳池县| 钟祥市| 高邮市| 高青县| 栾川县| 淳安县| 洛阳市| 昌图县| 甘泉县| 蒲江县| 峡江县| 武汉市| 阿鲁科尔沁旗| 江城| 潞城市| 洪雅县| 昌图县| 涟水县| 北票市| 盐城市| 宁都县| 抚顺市| 万宁市| 呼玛县| 刚察县| 六安市| 彩票|