日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java中常见的几种内部类,你会几个?(未完)

發(fā)布時(shí)間:2023/12/3 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中常见的几种内部类,你会几个?(未完) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

點(diǎn)擊上方藍(lán)色關(guān)注我們!

大家好,我是雄雄,今天給大家介紹的是java中的幾種內(nèi)部類。

java中常見的幾個(gè)內(nèi)部類,你會(huì)幾個(gè)?我會(huì)四個(gè)!

在看每個(gè)新知識(shí)點(diǎn)時(shí),我們不禁有這樣或者那樣的疑問,比如它是什么?怎么用?帶著這些疑問我們繼續(xù)往下看:

它(內(nèi)部類),是什么?

內(nèi)部類,顧名思義就是內(nèi)部的類,什么的內(nèi)部?我們都知道java中基本的操作單元是類,那么在類的內(nèi)部還有一個(gè)類(也可以說是類中嵌套類),這樣的結(jié)構(gòu),我們就可以稱這種(類中的類)為內(nèi)部類。

接下來我們可以看一個(gè)簡(jiǎn)單的內(nèi)部類案例,代碼如下:

package org.test;//外部類 public?class?People?{//外部類的方法public?void?show(String name){System.out.println("你好"+name);}//內(nèi)部類class?Peo?{//內(nèi)部類的方法public?void?show(String name){System.out.println("你好"+name);}}//外部類的main方法public?static?void?main(String[] args) {//創(chuàng)建內(nèi)部類的對(duì)象Peo p = new?People().new Peo();p.show("張三");System.out.println("---------------");//調(diào)用外部類的new?People().show("李四");}}

分析一下代碼,我們先寫了一個(gè)外部類People,在外部類中寫一個(gè)show方法,并且需要一個(gè)String類型的參數(shù),緊接著有在該類中重新聲明了一個(gè)名為Peo的類(內(nèi)部類),該內(nèi)部類中也寫了一個(gè)show方法,且需要一個(gè)Stirng類型的參數(shù)。

然后我們?cè)谕獠款惖膍ain方法中,分別調(diào)用內(nèi)部類與外部類的方法,運(yùn)行結(jié)果為:

可見,內(nèi)部類的用法并不難,下面我們來深入的看看。

java中的內(nèi)部類只是java編譯器的概念,對(duì)于java的虛擬機(jī)而言,它是沒有java內(nèi)部類的概念的,也就是說java中的內(nèi)部類最后也會(huì)被編譯成一個(gè)獨(dú)立的class文件。

Java中的內(nèi)部類可以分為四種:

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

  • 成員內(nèi)部類

  • 方法內(nèi)部類

  • 匿名內(nèi)部類

它(內(nèi)部類)怎么用?

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

靜態(tài)內(nèi)部類的聲明和靜態(tài)方法聲明類似,就是將關(guān)鍵詞改成了class,如下:

package org.test;//外部類 public?class?People?{static?int?num;//內(nèi)部類static?class?Peo?{private?static?String name ;//內(nèi)部類的方法public?static?void?show(){System.out.println("數(shù)字是:"+num);System.out.println("歡迎關(guān)注:"+name+",嘿嘿!");}}//main方法public?static?void?main(String[] args) {new?People().num = 888;Peo.name = "雄雄的小課堂";Peo.show();}}

分析代碼:

我們?cè)谕獠款怭eople中聲明了一個(gè)int類型的num,在內(nèi)部類中聲明了name屬性和show方法。然后在主體main方法中調(diào)用,其結(jié)果為:

總結(jié): 靜態(tài)內(nèi)部類可以直接訪問外部的靜態(tài)屬性和方法,但是不可訪問外部類的實(shí)例屬性和方法。

2.成員內(nèi)部類:

將靜態(tài)內(nèi)部類的static關(guān)鍵詞去掉就成了成員內(nèi)部類,代碼如下:

package org.test;//外部類 public?class?People?{private?static?int?age ;String address ="山東濟(jì)南";//內(nèi)部類class?Peo?{private??String name ;//內(nèi)部類的方法public??void?show(){System.out.println("年齡是:"+age);System.out.println("地址是:"+address);System.out.println("名稱是:"+name+",嘿嘿!");}}//main方法public?static?void?main(String[] args) {Peo p = new?People().new Peo();People.age = 18;p.name = "雄雄的小課堂";p.show();}}

運(yùn)行結(jié)果為:

顯而易見,成員內(nèi)部類中除了可以調(diào)用外部類中的私有的靜態(tài)屬性外,還可以調(diào)用外部類的實(shí)例屬性。

下面還有一個(gè)問題,即:當(dāng)外部類中的屬性與內(nèi)部類中的屬性重名時(shí),在內(nèi)部類中如何區(qū)分使用該屬性呢,代碼如下:

//外部類 public?class?People?{//年齡private?static?int?age ;String address ="山東濟(jì)南";//內(nèi)部類class?Peo?{//姓名private??String name ;//年齡private?int?age = 28; //內(nèi)部類和外部類重名的屬性//內(nèi)部類的方法public??void?show(){System.out.println("年齡是:"+age);System.out.println("年齡是:"+age);System.out.println("地址是:"+address);System.out.println("名稱是:"+name+",嘿嘿!");}}//main方法public?static?void?main(String[] args) {Peo p = new?People().new Peo();People.age = 18;p.name = "雄雄的小課堂";p.show();} }

大家猜想一下age的值多少?18?28?還是一個(gè)18一個(gè)28?運(yùn)行結(jié)果為:

造成這樣的結(jié)果原因是什么呢?從代碼中不難看的出來,age結(jié)果的值是內(nèi)部類的值,并非外部類的值,那么如果我想在內(nèi)部類中使用外部類的屬性,我應(yīng)該如何使用呢?

很簡(jiǎn)單,我們只需在該屬性的前面加上“類名.this.屬性名”即可,案例中我們就可以這樣寫:

運(yùn)行結(jié)果:

今天就先分享到這里,剩余的“方法內(nèi)部類”和“匿名內(nèi)部類”我們明天接著講。

支持作者

贊賞就不用啦,生活都不易,右下角的“在看/贊”點(diǎn)一下,如果感覺文章不錯(cuò),記得分享到朋友圈讓更多人知道!

粉絲群

▲每天都會(huì)有不定額的紅包發(fā)放,了解公眾號(hào)文章、抽獎(jiǎng)最新資訊。

往期推薦

java中你知道的這四種代碼塊嗎?

切記!構(gòu)造函數(shù)里面別一定不要初始化其他類,踩過坑的都知道

淺談我的讀書史

淺談我的讀書史(2)

總結(jié)

以上是生活随笔為你收集整理的java中常见的几种内部类,你会几个?(未完)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。