最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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)部類的評論 (共 條)

分享到微博請遵守國家法律
克东县| 南开区| 石首市| 美姑县| 方正县| 阿合奇县| 南漳县| 南和县| 贺兰县| 乐昌市| 海淀区| 黔南| 富川| 和龙市| 井陉县| 铁岭市| 庄河市| 广饶县| 达孜县| 安平县| 周口市| 郁南县| 泌阳县| 阜阳市| 郁南县| 新闻| 湖北省| 维西| 元氏县| 罗定市| 台前县| 西城区| 金华市| 彰化市| 赤峰市| 讷河市| 丽水市| 鄂托克旗| 镶黄旗| 睢宁县| 时尚|