国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

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

詳細分析Java內部類——局部內部類

瀏覽:14日期:2022-08-26 14:48:23

今天介紹第二種內部類——局部內部類。

局部內部類是什么?顧名思義,那就是定義在局部內部的類(逃)。開玩笑的,局部內部類就是定義在代碼塊、方法體內、作用域(使用花括號“{}”括起來的一段代碼)內的類。局部內部類有以下特性:

局部內部類只能在代碼代碼塊、方法體內和作用域中使用。 局部內部類同樣可以無限制調用外部類的方法和屬性。 可以使用abstract修飾,聲明為抽象類。

舉個栗子:

public class Outer2 { public void print(){ class Inner2{ public void test(){ System.out.println('Inner.print()'); } } Inner2 inner2 = new Inner2(); inner2.test(); }}

public class Test { public static void main(String[] args) { Outer2 outer2 = new Outer2(); outer2.print(); }}

這里的Inner2類僅僅在Outer2的print方法中被使用,有效范圍也僅在print函數之內。

通過這段玩具代碼,可能無法理解為什么java中要出現這樣限制這么多而且挺復雜的東西。讓我們來看看之前的栗子:Java中的回調

這里把代碼復制過來:

public class TimePrinter implements ActionListener { @Override public void actionPerformed(ActionEvent e) { Date now = new Date(); System.out.println('Time is ' + now + ' now.'); }}

public class Test { public static void main(String[] args) { ActionListener listener = new TimePrinter(); Timer t = new Timer(1000,listener); t.start(); JOptionPane.showMessageDialog(null,'Quit program?');//彈出對話框,防止主線程結束導致時鐘結束 System.exit(0); }}

在這里,我們想要創建一個Timer時,需要往里面傳入一個實現了ActionListener接口的對象,而這個對象僅僅在該方法中使用了一次,這時候內部類的優勢就體現出來了,把類封裝在方法中,不向外界提供任何冗余信息:

public class Test { public static void main(String[] args) { class InnerTimePrinter implements ActionListener { @Override public void actionPerformed(ActionEvent e) { Date now = new Date(); System.out.println('Time is ' + now + ' now.'); } } ActionListener listener = new InnerTimePrinter(); Timer t = new Timer(1000,listener); t.start(); JOptionPane.showMessageDialog(null,'Quit?'); System.exit(0); }}

你也許會覺得,這樣好像只是把類簡單的挪到了另一個類里面,并沒有什么luan用。

表面上,確實如此,但事實上,還是有很多luan用的。

在《Think in java》中有這樣一句話:使用內部類最吸引人的原因是:每個內部類都能獨立地繼承一個(接口的)實現,所以無論外圍類是否已經繼承了某個(接口的)實現,對于內部類都沒有影響。

我們都知道,java中是不能實現多繼承的,接口也正是為了對多繼承的補充完善給出的方案。而我們程序設計中有時候會存在一些使用接口很難解決的問題,這個時候我們可以利用內部類提供的、可以繼承多個具體的或者抽象的類的能力來解決這些程序設計問題。可以說,接口只是解決了部分問題,而內部類使得多重繼承的解決方案變得更加完整。

據個人經驗,局部內部類確實用的不多,但不常用不代表沒有用,知道有這樣一個神奇的內部類存在,了解過它的特性之后,可以為你日后的需求提供更多的方案。

至此,本篇講解完畢,歡迎大家繼續關注!

以上就是詳細分析Java內部類——局部內部類的詳細內容,更多關于Java 局部內部類的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
主站蜘蛛池模板: 国产一区在线观看免费 | 99久久国产综合精品网成人影院 | 久久久久久久久久久久久久久久久久 | 欧美三级毛片 | 国产视频a| 亚洲最大的视频网站 | 亚洲国产精品大秀在线播放 | 久久成人免费播放网站 | 欧美另类在线视频 | 手机看片日韩日韩韩 | 国产精品yjizz视频网一二区 | 在线观看国产区 | 国产成人综合高清在线观看 | 欧美一级毛片免费高清aa | 久草视频福利在线观看 | 国产cao | 久久国产影视 | 国产精品日产三级在线观看 | 欧美一及片 | 精品国产精品久久一区免费式 | 成年人精品视频 | 韩国日本一级片 | 无限资源中文免费 | 67194欧美成l人在线观看免费 | 手机看片日韩日韩国产在线看 | 女人夜色黄网在线观看 | 国产成人精品高清在线 | 呦女精品 | 不卡一级毛片免费高清 | 一本色道久久综合网 | 成人永久免费视频网站在线观看 | 日韩精品一区二区三区四区 | 日本特级淫片免费看 | 视色4setv.com| 国产精品久久久久久一区二区 | 特级一级毛片视频免费观看 | u影一族亚洲精品欧美激情 va欧美 | 三级黄色网址 | 可以免费看黄的网站 | 国产成人免费高清在线观看 | 美女视频一区二区三区 |