亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

Java內部類原理與用法實例總結

2024-07-14 08:42:10
字體:
來源:轉載
供稿:網友

本文實例講述了Java內部類原理與用法。分享給大家供大家參考,具體如下:

一、非靜態內部類

public class OutClass {  private String name = "outclass";  public void show() {    System.out.println(this.name);  }  public void innerShow() {    InnerClass inner = new InnerClass();    inner.show();    inner.outShow();  }  // 非靜態內部類  class InnerClass {    // 2.0非靜態內部類不能有靜態變量的聲明    // public static int age=0;    private String name = "innerclass";    public void show() {      System.out.println(this.name);    }    public void outShow() {      // 3.0內部類做為外部類的實例成員,可以隨意訪問其他外部類成員      System.out.println(OutClass.this.name);    }  }  public static void main(String[] args) {    OutClass out = new OutClass();    out.show();    out.innerShow();    // 1.0下面一行編譯報錯,靜態方法無法訪問this指針    // 因為等同于this.InnerClass inner=new this.InnerClass();    // InnerClass inner=new InnerClass();  }}

運行結果:

outclass
innerclass
outclass

1.外部類不能直接訪問非靜態內部類,必須在外部類中保存內部類的引用間接訪問。
2.非靜態內部類中不能有靜態屬性。

個人理解:非靜態內部類是外部類的實例成員,它屬于外部類的實例對象所擁有,若內部類有靜態屬性,那么屬性必定屬于內部類所有,即所有的內部類實例對象都共享這個屬性。但是這個內部類已經屬于外部類的實例對象所擁有了,貌似是1:1的關系,除非外部類的對象保存了n多份內部類實例的引用,那這樣內部類的靜態屬性才有存在的必要,可這么做就沒有什么意義了。

3.非靜態內部類可以隨意訪問外部類的成員,因為它們都是外部類的成員,等級一樣。

4.若要得到內部類的實例,可以

OutClass.InnerClass inner=new OutClass().new InnerClass();

二、靜態內部類

public class OutClass {  private String name = "outclass";  private static int age = 10;  // 靜態內部類  static class InnerClass {    public void show() {      // 1.0      System.out.println(new OutClass().name);    }    public void outShow() {      // 2.0      System.out.println(age);    }  }  public static void main(String[] args) {    // 3.0    OutClass.InnerClass inner = new OutClass.InnerClass();    inner.outShow();    inner.show();  }}

運行結果:

10
outclass

1.靜態內部類不能隨意訪問外部類的實例成員,必須引用外部類的對象。
2.靜態內部類可以隨意訪問外部類的類成員。
3.若要獲取靜態內部類的實例,則形式如

OutClass.InnerClass inner=new OutClass.InnerClass();

注意與非靜態內部類獲取實例的區別:

OutClass.InnerClass inner=new OutClass().new InnerClass();

三、局部類

1.匿名內部類

interface IDraw {  void draw();}public class OutClass {  public void createCircle(IDraw obj) {    obj.draw();  }  public static void main(String[] args) {    OutClass out = new OutClass();    out.createCircle(new IDraw() {      public void draw() {        System.out.println("i'm drawing...");      }    });  }}

運行結果:

i'm drawing...

在調用多態形式的方法createCircle(IDraw obj)時,參數用到了new IDraw(){ },做為接口來說是不能直接實例化的,這里的new IDraw()并不是直接實例化,而是創建了匿名內部類。

2.閉包與回調

interface IDraw {  void draw();}public class OutClass {  private String name = "private name";  public Closure getClosure() {    return new Closure();  }  class Closure implements IDraw {    public void draw() {      System.out.println(OutClass.this.name);// name    }  }  public static void main(String[] args) {    OutClass out = new OutClass();    out.getClosure().draw();  }}

運行結果:

private name

內部類可以像其他類一樣靈活的實現各種接口和繼承,并且可以將外部類的屬性和方法綁定到自身中,形成閉包。而在外部類中提供了方法供外界獲取內部類的引用,因為內部類的方法靈活的訪問了外部類的許多信息,甚至是私有信息,獲得了這個對象后可以反過來調用外部類的方法和函數形成回調。

其實上面只是有閉包的形式,并不算是真正的閉包,閉包的定義里主要是綁定方法里的變量,但是java是無法實現方法里的內部類還能訪問方法變量的,因為無法實現真正的閉包。

希望本文所述對大家java程序設計有所幫助。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久久久久久久久久久久| 成人黄色短视频在线观看| 国产精品第100页| 成人国产精品一区二区| 欧美激情视频在线免费观看 欧美视频免费一| 55夜色66夜色国产精品视频| 欧美肥老太性生活视频| 欧美极品少妇xxxxⅹ喷水| 精品久久久久久久中文字幕| 国产亚洲一区二区在线| 亚洲色图色老头| 中文字幕视频在线免费欧美日韩综合在线看| 国产精品h片在线播放| 国产视频亚洲视频| 国产精品69av| 亚洲一区亚洲二区| 日韩在线观看免费网站| 亚洲电影免费在线观看| 麻豆国产va免费精品高清在线| 午夜剧场成人观在线视频免费观看| 成人激情黄色网| 狠狠色狠狠色综合日日小说| 78m国产成人精品视频| 日韩在线观看免费全集电视剧网站| 992tv成人免费影院| 亚洲精品99久久久久| 精品国产一区二区三区久久狼5月| 亚洲色图欧美制服丝袜另类第一页| 日韩av手机在线观看| 国产一区二区三区精品久久久| 国产精品女人久久久久久| 欧美精品日韩三级| 色爱av美腿丝袜综合粉嫩av| 日韩在线播放视频| 欧美最猛性xxxx| 成人精品视频99在线观看免费| 97精品国产91久久久久久| 国产精品久久久久久久久久久久久久| 国内精品久久久| 国产成人精品优优av| 成人激情在线观看| 欧美小视频在线| www.欧美视频| 亚洲精品视频久久| 国产精品免费视频久久久| 日韩有码在线电影| 91av在线免费观看视频| 亚洲一区二区精品| 亚洲欧美日韩久久久久久| 91精品视频一区| 欧美在线视频在线播放完整版免费观看| 国产一区二区在线免费视频| 97久久精品在线| 97在线免费观看视频| 国产亚洲精品高潮| 亚洲一区二区三区xxx视频| 亚洲全黄一级网站| 亚洲最大在线视频| 国产精品国语对白| 久久99精品国产99久久6尤物| 欧美激情精品久久久久久久变态| 国产视频一区在线| 欧美国产乱视频| 亚洲国产一区二区三区四区| 国产亚洲aⅴaaaaaa毛片| 在线激情影院一区| 亚洲人成毛片在线播放| 亚洲精品视频网上网址在线观看| 丁香五六月婷婷久久激情| 98精品国产自产在线观看| 欧美久久久精品| 国产精品福利久久久| 亚洲精品视频久久| 欧美主播福利视频| 午夜精品99久久免费| 亚洲 日韩 国产第一| 综合网日日天干夜夜久久| 亚洲国产精品久久精品怡红院| 亚洲黄色有码视频| 国产z一区二区三区| 久久久日本电影| 国产欧美精品在线播放| 国产精品视频区| 欧美日韩在线第一页| 日本久久久a级免费| 日韩av男人的天堂| 久久av资源网站| 亚洲国产精品女人久久久| 日本一区二区在线播放| 亚洲一区二区三区xxx视频| 国产www精品| 久久精品国产亚洲7777| 日本成熟性欧美| 国内成人精品视频| 啪一啪鲁一鲁2019在线视频| 人人做人人澡人人爽欧美| 欧美电影第一页| 日韩av在线导航| 68精品久久久久久欧美| 国产在线拍偷自揄拍精品| 日韩av资源在线播放| 国产一区二区丝袜| 免费成人高清视频| 91国偷自产一区二区三区的观看方式| 亚洲电影免费观看高清完整版在线| 国产精品v片在线观看不卡| 中文精品99久久国产香蕉| 久久成人精品电影| 国产亚洲精品久久久| 国内精品视频久久| 操日韩av在线电影| 日韩中文字幕欧美| 久久影视电视剧免费网站| 91久久国产精品91久久性色| 欧美精品久久一区二区| 久久精品中文字幕免费mv| 国产精品久久久久久网站| 91精品久久久久久综合乱菊| 超碰精品一区二区三区乱码| 久久免费成人精品视频| 91tv亚洲精品香蕉国产一区7ujn| 国产成人免费91av在线| 91九色综合久久| 色综合久久88色综合天天看泰| 国产成人亚洲综合| 欧美在线一区二区视频| 国产亚洲一区二区精品| 亚洲欧美国产另类| 成人黄色免费看| 亚洲精品一区二区网址| 久久精品国产成人精品| 久青草国产97香蕉在线视频| 久久视频在线播放| 亚洲一区二区福利| 中文字幕亚洲情99在线| 国产精品一区二区性色av| 亚洲视频在线观看免费| 亚洲欧美国产一本综合首页| 久热精品在线视频| 国产精品99久久久久久久久| 国精产品一区一区三区有限在线| 亚洲欧美日韩一区在线| 亚洲色图偷窥自拍| 91精品久久久久久久久久久| 亚洲精品一区中文字幕乱码| 亚洲欧美日韩中文视频| 91成人福利在线| 国产一区二区三区在线播放免费观看| 91av国产在线| 日韩小视频在线观看| 欧美性猛交xxxxx免费看| 国产成人一区三区| 欧美大胆在线视频| 1769国产精品| 国产一区二区三区在线免费观看| 正在播放欧美一区| 日韩亚洲在线观看| 日韩中文字幕在线精品| 国产精品igao视频| 久久精品视频在线播放| 国产日产久久高清欧美一区| 精品亚洲男同gayvideo网站| 久久6免费高清热精品| 国产激情综合五月久久|