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

您的位置:首頁技術文章
文章詳情頁

淺談Java面向對象之內部類

瀏覽:39日期:2022-08-10 15:07:05
目錄內部類訪問外部對象訪問內部對象局部內部類匿名內部類靜態內部類內部類

內部類是定義在另一個類中的類,例如 TalkingClock 類中內嵌了 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){} }}

內部類可以對同一個包中的其他類隱藏細節,同時內部類中的方法可以訪問原來的類中的作用域數據。

訪問外部對象

內部類可以訪問自身的數據字段,也可以訪問創建它的外圍類對象的數據字段。內部類會有一個隱式引用,指向創建它的外部類對象。

淺談Java面向對象之內部類

對外圍類的引用在構造器中設置,編譯器會修改所有內部類的構造器,添加一個對外部類引用的參數。使用外部類引用的語法為:

OuterClass.this

例如內部類 TimePrinter 引用外部類 TalkingClock 的 beep 參數,嚴格來說要寫成這樣。

TalkingClock.this.beep訪問內部對象

使用內部類的構造器時,可以使用下面的語法來實現:

outerObject.new InnerClass(construction parameters)

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

OuterClass.InnerClass局部內部類

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

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();}

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

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

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

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

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

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();} 靜態內部類

有時候使用內部類只是想隱藏一個類,并不需要內部類有外部類的引用,因此可以用 static 關鍵字聲明靜態內部類。例如定義 ArrayAlg 類中實現 minmax 方法,minmax 方法的功能是同時返回一個數組的最大值和最小值,但是用 return 只能返回一個值。因此可以定義一個靜態內部類 Pair,Pair 類有兩個參數可以分別存儲最大和最小值,這樣就可以通過返回 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); }}

只要內部類不需要訪問外圍類對象,就應該聲明為靜態內部類。和其他內部類不同,靜態內部類可以有靜態字段和方法。

以上就是淺談Java面向對象之內部類的詳細內容,更多關于Java面向對象內部類的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩免费av| 九一成人免费视频| 亚洲午夜天堂| 在线成人直播| 亚洲三级av| 国产亚洲精品精品国产亚洲综合| 日本a级不卡| 99在线观看免费视频精品观看| 久久av综合| 好吊视频一区二区三区四区| 久久精品影视| 美女精品在线| 国产乱子精品一区二区在线观看 | 久久av在线| 综合激情视频| 精品美女在线视频| 视频一区中文| 亚洲精品国产偷自在线观看| 麻豆视频在线看| 电影91久久久| 亚洲深夜视频| 999国产精品| 亚洲精品一区二区妖精| 伊人久久大香线蕉av不卡| 麻豆久久久久久久| 欧美va亚洲va日韩∨a综合色| 色吊丝一区二区| 久久国产电影| 午夜久久福利| 亚洲精品小说| 亚州欧美在线| 国产精品一二| 日韩不卡一区| 激情婷婷亚洲| 亚洲视频国产| 欧美亚洲自偷自偷| 国产精品中文字幕制服诱惑| 久久精品国产久精国产爱| 精品免费在线| 精品国内亚洲2022精品成人| 日韩一区精品视频| 精品日本视频| 蜜桃成人av| 日韩高清不卡在线| 成人精品视频| 国产精品视区| 久草精品视频| 蜜臀av性久久久久蜜臀aⅴ四虎 | 日韩精品一区二区三区中文| 青青草视频一区| 伊人久久视频| 玖玖玖国产精品| 麻豆精品一区二区综合av| 久久久精品午夜少妇| 视频一区日韩精品| 国产videos久久| 欧美一区二区三区久久精品| 亚洲精品国产精品粉嫩| 亚洲美女久久精品| 欧美日韩亚洲国产精品| 在线午夜精品| 香蕉精品久久| 伊人久久大香线蕉av不卡| 婷婷激情一区| 精品福利久久久| 国产成人精品一区二区三区免费 | 蜜臀av亚洲一区中文字幕| 久久久久99| 婷婷激情一区| 日韩在线二区| 日韩精品第一区| 日韩精品诱惑一区?区三区| 97人人精品| 97精品一区二区| 亚洲黄色免费看| 日本а中文在线天堂| 97精品视频在线看| 国产欧美日韩亚洲一区二区三区| 蜜桃久久av一区| 日韩av网站免费在线| 亚洲精品三级| 青青青国产精品| 你懂的亚洲视频| 韩国久久久久久| 999国产精品永久免费视频app| 国产99亚洲| 免费在线观看日韩欧美| 亚洲精品伊人| 精品国内亚洲2022精品成人| 91免费精品| 午夜欧美理论片| 亚洲精品在线国产| 亚洲精品麻豆| 国产精品jk白丝蜜臀av小说| 亚洲黄色免费av| 91精品国产福利在线观看麻豆| 欧美在线亚洲综合一区| 夜夜嗨网站十八久久 | 欧美日韩免费观看视频| 久久久久久久久99精品大| 伊人影院久久| 欧美精品九九| 国产精品亚洲综合色区韩国| 日韩精品亚洲专区| 精品欧美日韩精品| 久久久久伊人| 亚洲天堂日韩在线| 欧美专区一区二区三区| 日韩1区2区日韩1区2区| 欧洲av一区二区| 国产欧美二区| 91精品啪在线观看国产爱臀| 中文不卡在线| 丝袜诱惑制服诱惑色一区在线观看 | 都市激情国产精品| 国产精品网站在线看| 日本国产一区| 青草综合视频| 亚洲一区国产| 国产一区二区色噜噜| 日本不卡一区二区三区| 香蕉久久久久久久av网站| 激情欧美一区| 香蕉久久99| 日韩av一级| 色偷偷色偷偷色偷偷在线视频| 麻豆精品在线观看| 久久国产电影| 国产黄色一区| 免费在线观看一区| 欧美日韩伊人| 国产精品色在线网站| 日韩欧美中文字幕在线视频| 亚洲毛片视频| 日韩激情视频网站| 清纯唯美亚洲综合一区| 97se亚洲| 精品视频一区二区三区在线观看| 麻豆成人综合网| 日韩在线免费| 婷婷综合五月| 亚洲精品激情| 日韩精品视频网| 国产欧美日韩一区二区三区在线| 日韩av在线免费观看不卡| 日韩av中文字幕一区| 老司机精品视频在线播放| а√在线中文在线新版| 亚洲成a人片| 性欧美69xoxoxoxo| 视频一区中文字幕| 美女高潮久久久| 日韩一级不卡| 国产精品美女久久久久久不卡 | 日本91福利区| 国产精品久久久久av电视剧| 亚洲精品一区二区在线看| 日韩高清不卡在线| 亚洲二区免费| 国产精品.xx视频.xxtv| 一本一道久久a久久精品蜜桃| 国产精品一区二区av日韩在线| 亚洲电影在线| 激情婷婷综合| 久久久一本精品| 国产精品porn| 欧美日韩xxxx| 亚洲精品日本| 1024精品久久久久久久久| 麻豆91在线播放| 7777精品| 99国产精品| 久久久久国产精品一区二区| 国产一区二区三区四区五区| 亚洲理论在线| 国产精品女主播一区二区三区| 久久久精品五月天| 精品国产中文字幕第一页| 亚洲欧美专区| 亚洲视频电影在线| 免播放器亚洲一区| 亚洲黄页一区| 亚洲少妇诱惑| 亚洲自拍另类| 亚洲视频二区| 国产图片一区| 欧美精品福利| 国产一区二区亚洲| 999久久久91| 日韩中文欧美在线| 欧美亚洲一区二区三区| 久久99青青| 亚洲国产福利| 香蕉精品999视频一区二区| 日本少妇精品亚洲第一区| 麻豆精品国产91久久久久久| 亚洲精品亚洲人成在线观看| 国产在线观看www| 欧美日韩国产高清电影| 日本v片在线高清不卡在线观看|