黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 Java中的內(nèi)部類內(nèi)部接口詳解

Java中的內(nèi)部類內(nèi)部接口詳解

更新時(shí)間:2020-08-13 16:47:22 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1962次

一般來(lái)說(shuō),我們創(chuàng)建類和接口的時(shí)候都是一個(gè)類一個(gè)文件,一個(gè)接口一個(gè)文件,但有時(shí)候?yàn)榱朔奖慊蛘吣承┨厥獾脑颍琷ava并不介意在一個(gè)文件中寫多個(gè)類和多個(gè)接口,這就有了我們今天要講的內(nèi)部類和內(nèi)部接口。

Java內(nèi)部類

先講內(nèi)部類,內(nèi)部類就是在類中定義的類。類中的類可以看做是類的一個(gè)屬性,一個(gè)屬性可以是static也可以是非static的。而內(nèi)部類也可以定義在類的方法中,再加上匿名類,總共有5種內(nèi)部類。

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

我們?cè)赾lass內(nèi)部定義一個(gè)static的class,如下所示:

@Slf4jpublic?class?StaticInnerClass?{????static?class?Inner?{????????void?print()?{
????????????log.info("Inner?class?is:?"?+?this);
????????}
????}????public?static?void?main(String[]?args)?{
????????StaticInnerClass.Inner?inner?=?new?StaticInnerClass.Inner();
????????inner.print();
????}
}

因?yàn)?a href="/tutorial_java_se/1045.html" style="color: rgb(255, 0, 0); text-decoration: underline;" target="_blank" title="Java中static靜態(tài)變量">static變量可以直接根據(jù)類名來(lái)存取,所以我們使用new StaticInnerClass.Inner()來(lái)實(shí)例化內(nèi)部類。

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

class中定義的類也可以是非靜態(tài)的,如下所示:

@Slf4jpublic?class?InnerClass?{?????class?Inner?{????????void?print()?{
????????????log.info("Inner?class?is:?"?+?this);
????????}
????}????public?static?void?main(String[]?args)?{
????????InnerClass.Inner?inner?=?new?InnerClass().new?Inner();
????????inner.print();
????}
}

要訪問(wèn)到類的變量,需要實(shí)例化外部?jī)?nèi),然后再實(shí)例化內(nèi)部類:new InnerClass().new Inner()。

注意這里我們需要使用到兩個(gè)new。

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

我們可以在靜態(tài)方法中定義一個(gè)類,這個(gè)類其實(shí)就相當(dāng)于方法中的變量,這個(gè)變量當(dāng)然不能是static的。我們看下面的例子:

@Slf4j
public?class?StaticMethodInnerClass?{
????private?static?String?x?=?"static?x";
????public?static?void?print()?{
????????class?MyInner?{
????????????public?void?printOuter()?{
????????????????log.info("x?is?"?+?x);
????????????}
????????}
????????MyInner?i?=?new?MyInner();
????????i.printOuter();
????}
????public?static?void?main(String[]?args)?{
????????StaticMethodInnerClass.print();
???}
}

方法中的類,我們是無(wú)法在外部實(shí)例化的。

非靜態(tài)方法的內(nèi)部類

同樣的非靜態(tài)方法也可以定義內(nèi)部類:

@Slf4j
public?class?MethodInnerClass?{
????private??String?x?=?"non?static?x";
????public??void?print()?{
????????class?MyInner?{
????????????public?void?printOuter()?{
????????????????log.info("x?is?"?+?x);
????????????}
????????}
????????MyInner?i?=?new?MyInner();
????????i.printOuter();
????}
????public?static?void?main(String[]?args)?{
????????new?MethodInnerClass().print();
????}
}

注意,這里需要先實(shí)例化外部類才可以繼續(xù)調(diào)用。

匿名類

最后一個(gè),匿名類,直接在需要的時(shí)候?qū)嵗念悺D涿愇覀冇龅搅撕芏啻瘟耍热缭跇?gòu)建SortedSet的時(shí)候,可以傳入自定義的Comparator,我們可以用匿名類來(lái)實(shí)現(xiàn),也可以直接使用lambda表達(dá)式

public?class?AnonymousClass?{
????public?static?void?main(String[]?args)?{
????????SortedSet?sortedSet1?=?new?ConcurrentSkipListSet(new?Comparator(){
????????????@Override
????????????public?int?compare(Object?o1,?Object?o2)?{
????????????????return?0;
????????????}
????????});

????????SortedSet?sortedSet2?=?new?ConcurrentSkipListSet((o1,?o2)?->?0);
????}
}

內(nèi)部接口

Inner Interface是指在接口中定義的接口。最常見(jiàn)的就是Map中的Entry了:

public?interface?Map?{
????interface?Entry?{
????????K?getKey();
????}

這里的內(nèi)部接口一定是static的,因?yàn)榻涌谑遣荒軐?shí)例化的,所以為了訪問(wèn)到接口中的接口,必須定義為static。如果不指定,則默認(rèn)就是static。

我們看一個(gè)該內(nèi)部接口的實(shí)現(xiàn):

public?class?MapImpl?implements?Map.Entry{
????@Override
????public?Object?getKey()?{
????????return?0;
????}
????@Override
????public?Object?getValue()?{
????????return?null;
????}
????@Override
????public?Object?setValue(Object?value)?{
????????return?null;
????}
}

以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java中的內(nèi)部類內(nèi)部接口詳解”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-05-15 搶座中
  • 全國(guó)校區(qū) 2025-06-05 搶座中
  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 国产精品资源在线播放 | 日本三级日本三级人妇三级四 | 亚洲精选在线观看 | 成人免费看视频 | 琪琪在线视频 | 曰本不卡视频 | 中文字幕在线观看一区二区三区 | 老湿影院免费观看 | 国产一区精品在线观看 | 久久er精品热线免费 | 18免费网站 | 天天干干 | 欧美日韩一二 | 黄网站色视频免费观看 | 国产精品永久免费视频观看 | 国产精品合集一区二区三区 | 狼人香蕉国产在线视频 | 亚洲国产一区在线 | 久久yy| h成年动漫同人网站免费 | 精品国产无限资源免费观看 | 亚洲欧美激情综合首页 | 日韩精品欧美亚洲高清有无 | 中国女人特级毛片 | 高清日韩 | 国产精品手机在线 | 香蕉视频你懂的 | 亚洲最大福利视频网站 | 婷婷激情小说网 | 大陆一级黄色片 | 日韩欧美一区二区三区 | 男女性激烈动态图无遮挡 | 国产一级特黄一级毛片 | 手机看片国产精品 | 日本大蕉香蕉大视频在线观看 | 中国国产xxxxhd| 欧美极品欧美精品欧美视频 | 日韩中文字幕久久久经典网 | 国产日韩欧美高清 | 最近的中文字幕免费视频1 最近的中文字幕大全免费版 | 欧美色视频网站 |