日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

淺談Java面向?qū)ο笾畠?nèi)部類

瀏覽:36日期:2022-08-10 15:07:05
目錄內(nèi)部類訪問外部對象訪問內(nèi)部對象局部內(nèi)部類匿名內(nèi)部類靜態(tài)內(nèi)部類內(nèi)部類

內(nèi)部類是定義在另一個類中的類,例如 TalkingClock 類中內(nèi)嵌了 TimePrinter 類:

class TalkingClock{ private int interval; private boolean beep; public TalkingClock(int interval, boolean beep){} public void start(){} public class TimePrinter implements ActionListener{ public void actionPerformed(ActionEvent event){} }}

內(nèi)部類可以對同一個包中的其他類隱藏細(xì)節(jié),同時內(nèi)部類中的方法可以訪問原來的類中的作用域數(shù)據(jù)。

訪問外部對象

內(nèi)部類可以訪問自身的數(shù)據(jù)字段,也可以訪問創(chuàng)建它的外圍類對象的數(shù)據(jù)字段。內(nèi)部類會有一個隱式引用,指向創(chuàng)建它的外部類對象。

淺談Java面向?qū)ο笾畠?nèi)部類

對外圍類的引用在構(gòu)造器中設(shè)置,編譯器會修改所有內(nèi)部類的構(gòu)造器,添加一個對外部類引用的參數(shù)。使用外部類引用的語法為:

OuterClass.this

例如內(nèi)部類 TimePrinter 引用外部類 TalkingClock 的 beep 參數(shù),嚴(yán)格來說要寫成這樣。

TalkingClock.this.beep訪問內(nèi)部對象

使用內(nèi)部類的構(gòu)造器時,可以使用下面的語法來實(shí)現(xiàn):

outerObject.new InnerClass(construction parameters)

在外部類的作用域之外,想要引用內(nèi)部類就需要用下面的語法:

OuterClass.InnerClass局部內(nèi)部類

局部內(nèi)部類類似方法的局部變量,在類外或者類的其他方法中不能訪問這個內(nèi)部類。通常情況下可以在某個方法中局部實(shí)現(xiàn)一個類,這個類將用于輔助該方法的功能實(shí)現(xiàn)。例如:

public void start(){ class TimePrinter implements ActionListener{ public void actionPerformed(ActionEvent event){ System.out.println('The time is ' + Instant.ofEpochMilli(event.getWhen())); if (beep) {Toolkit.getDefaultToolkit().beep(); } } } TimePrinter listener = new TimePrinter(); TalkingClock timer = new Timer(interval, listener); timer.start();}

聲明局部類時不能有訪問說明符,局部類的作用域被限定在了這個局部類塊中。局部類可以做到對外界的絕對隱藏,這是個很大的優(yōu)勢。局部類還有個優(yōu)點(diǎn),就是可以訪問局部變量。當(dāng)局部變量傳參進(jìn)來時,局部變量也會被傳入構(gòu)造器,此時編譯器會為局部變量提供相應(yīng)的實(shí)例字段,保存一個副本。這么做的好處是,當(dāng)函數(shù)調(diào)用結(jié)束導(dǎo)致局部變量消失時,局部類還能夠使用這個局部變量。例如將上述的 start 方法改為傳入 2 個參數(shù),仍然不影響正常使用。

public void start(int interval, boolean beep)匿名內(nèi)部類

使用局部類時,如果只是想建立這個局部類的一個對象,甚至不需要給出這個類的名字,這種類就成為匿名內(nèi)部類。匿名內(nèi)部類的語法為:

new SuperType(construction parameters){ inner class methods and data} new InterfaceType(){ methods and data}

SuperType 指的是超類,此時局部類就需要拓展這個類。匿名局部類可以基于接口創(chuàng)建,此時局部類就要實(shí)現(xiàn)這個接口。由于構(gòu)造器的名字必須和類名相同,而匿名局部類沒有類名,因此匿名局部類不能有構(gòu)造器,此時如果要構(gòu)造參數(shù)就需要傳遞給超類的構(gòu)造器。例如將上述的局部類改造成匿名內(nèi)部類:

public void start(){ var listener = new ActionListener(){ public void actionPerformed(ActionEvent event){ System.out.println('The time is ' + Instant.ofEpochMilli(event.getWhen())); if (beep) {Toolkit.getDefaultToolkit().beep(); } } } TalkingClock timer = new Timer(interval, listener); timer.start();} 靜態(tài)內(nèi)部類

有時候使用內(nèi)部類只是想隱藏一個類,并不需要內(nèi)部類有外部類的引用,因此可以用 static 關(guān)鍵字聲明靜態(tài)內(nèi)部類。例如定義 ArrayAlg 類中實(shí)現(xiàn) minmax 方法,minmax 方法的功能是同時返回一個數(shù)組的最大值和最小值,但是用 return 只能返回一個值。因此可以定義一個靜態(tài)內(nèi)部類 Pair,Pair 類有兩個參數(shù)可以分別存儲最大和最小值,這樣就可以通過返回 Pair 方法同時返回 2 個值了。

class ArrayAlg{ public static class Pair{ private double first; private double second; public Pair(double f, double s){ first = f; second = s; } public double getFirst() { return first; } public double getSecond() { return second; } } public static Pair minmax(double[] values){ double min = Double.POSITIVE_INFINITY; double max = Double.NEGATIVE_INFINITY; for (double v : values){ if (min > v) min = v; if (max < v) max = v; } return new Pair(min, max); }}

只要內(nèi)部類不需要訪問外圍類對象,就應(yīng)該聲明為靜態(tài)內(nèi)部類。和其他內(nèi)部類不同,靜態(tài)內(nèi)部類可以有靜態(tài)字段和方法。

以上就是淺談Java面向?qū)ο笾畠?nèi)部類的詳細(xì)內(nèi)容,更多關(guān)于Java面向?qū)ο髢?nèi)部類的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
91精品推荐| 成人日韩精品| 精品一区免费| 国产在线观看www| 久久精品国产网站| 国产精品观看| 国产激情久久| 久久天堂影院| 久草精品视频| 日韩综合一区| 日韩欧美三级| 高清一区二区| 蜜臀久久精品| 欧美 日韩 国产精品免费观看| 久久一区二区三区喷水| 午夜欧美在线| 免费看日韩精品| 午夜久久av | 91免费精品国偷自产在线在线| 午夜精品影院| 久久国产高清| 一区在线观看| 激情欧美一区二区三区| 日本精品影院| 91精品国产91久久久久久黑人| 欧美韩一区二区| 国产精品一级在线观看| 国产丝袜一区| 国产精品xxx| 久久黄色影视| 国产精品mm| 青草久久视频| 91精品国产自产观看在线| 亚洲婷婷丁香| 久久高清免费观看| 午夜国产精品视频免费体验区| 中文字幕免费一区二区| 精品欧美久久| 欧美日韩三区| 一本一道久久a久久| 蜜桃久久久久久| 日日夜夜免费精品视频| 欧美中文高清| 久久精品99国产精品| 亚洲免费毛片| 日韩成人av影视| 1024精品久久久久久久久| 午夜国产欧美理论在线播放| 久久视频一区| 欧美午夜不卡| 亚洲1区在线| 国产精品色在线网站| 精品一区二区三区在线观看视频| 国产一区二区精品久| a国产在线视频| 宅男在线一区| 蜜桃视频一区二区| 日韩av中文字幕一区| 久久av偷拍| 日本蜜桃在线观看视频| 久久黄色影院| а√天堂8资源中文在线| 偷拍精品精品一区二区三区| 久久视频国产| 亚洲另类黄色| 久久字幕精品一区| 神马午夜久久| 中文一区一区三区免费在线观 | 日本一不卡视频| 日本色综合中文字幕| 欧美精品不卡| 亚洲午夜黄色| 日韩精品欧美精品| 久久精品国产福利| 亚洲国产专区校园欧美| 亚州精品视频| 国产欧美精品久久| 特黄毛片在线观看| 波多野结衣一区| 亚洲精品四区| 国产福利电影在线播放| 国产亚洲欧洲| 免费看久久久| 伊人精品在线| 91亚洲精品在看在线观看高清| 久久在线91| 女同性一区二区三区人了人一| 国产亚洲一区二区三区不卡| 四虎成人av| 亚洲人成毛片在线播放女女| 成人午夜网址| 亚洲精品极品| 成人羞羞视频播放网站| 91福利精品在线观看| 亚洲va中文在线播放免费| 视频一区日韩| 日韩在线综合| 日韩一区欧美| 日韩av一区二区在线影视| 亚洲永久av| 日本久久二区| 日韩高清不卡一区二区| 精品捆绑调教一区二区三区| 7777精品| 国产精品外国| 欧美日韩精品免费观看视完整| 69堂精品视频在线播放| 亚洲精品97| 成人在线视频免费看| 日韩国产欧美在线播放| 91成人精品视频| 国产第一亚洲| 国产亚洲电影| 免费人成在线不卡| 蜜桃精品视频| 蜜桃久久精品一区二区| 久久精品免费一区二区三区| 国产精品一区三区在线观看| 蜜桃视频一区二区三区在线观看| 日韩毛片视频| 国产专区精品| 国产视频一区二| 亚洲精品视频一二三区| 91久久久精品国产| 日韩av有码| 久久99影视| 欧美日韩一区二区高清| 国内精品福利| 日韩高清中文字幕一区二区| 国产区精品区| 亚洲欧美久久精品| 黄色网一区二区| 久久婷婷一区| 国产麻豆精品| 91成人在线精品视频| 自拍自偷一区二区三区| 国精品一区二区三区| 色天使综合视频| 成人国产精品一区二区网站| 国产精品videossex久久发布 | 欧美日一区二区| 麻豆一区二区三| 国产美女精品视频免费播放软件| 日韩影片在线观看| 日韩精品一二区| 亚洲欧美日韩国产综合精品二区| 色婷婷狠狠五月综合天色拍| 欧洲av不卡| 日本а中文在线天堂| 高清不卡亚洲| 激情黄产视频在线免费观看| 97欧美在线视频| 久久97久久97精品免视看秋霞| 日韩三级一区| 久久不射网站| 亚洲精品高潮| 天堂va在线高清一区| 亚州国产精品| 精品久久福利| 久久在线91| 日韩二区在线观看| 久久av影院| 国产精品免费99久久久| 国产精品综合| 成人午夜网址| av免费不卡国产观看| 欧美gv在线| 日韩av在线中文字幕| 亚洲黄色中文字幕| 亚洲午夜av| 日韩精品一区第一页| 亚洲乱码一区| 国产美女亚洲精品7777| 精品国产精品久久一区免费式| 福利片在线一区二区| av资源亚洲| 欧美日韩一二三四| 老司机精品久久| 日韩国产高清在线| 久久91视频| 电影天堂国产精品| 亚洲国产专区校园欧美| 国产精品黑丝在线播放| 精品中文字幕一区二区三区四区| 中文字幕一区二区三区在线视频| 亚洲欧美在线综合| 亚洲深深色噜噜狠狠爱网站| 欧美精品影院| 成人在线观看免费视频| 偷拍精品精品一区二区三区| 精品日韩毛片| 国产亚洲欧洲| 尤物tv在线精品| 一区二区三区网站| 国产欧美大片| 欧美精品资源| 综合欧美亚洲| 免费视频一区二区三区在线观看| sm捆绑调教国产免费网站在线观看| 1000部精品久久久久久久久|