华南俳烁实业有限公司

java

當(dāng)前位置:中華考試網(wǎng) >> java >> java教程 >> 文章內(nèi)容

Java匿名類

來源:中華考試網(wǎng)  [2020年11月24日]  【

  匿名類是指沒有類名的內(nèi)部類,必 須在創(chuàng)建時使用 new 語句來聲明類。其語法形式如下:

  new <類或接口>() {

  // 類的主體

  };

  這種形式的 new 語句聲明一個新的匿名類,它對一個給定的類進(jìn)行擴(kuò)展,或者實現(xiàn)一個給定的接口。使用匿名類可使代碼更加簡潔、緊湊,模塊化程度更高。

  匿名類有兩種實現(xiàn)方式:

  繼承一個類,重寫其方法。

  實現(xiàn)一個接口(可以是多個),實現(xiàn)其方法。

  下面通過代碼來說明。

  public class Out {

  void show() {

  System.out.println("調(diào)用 Out 類的 show() 方法");

  }

  }

  public class TestAnonymousInterClass {

  // 在這個方法中構(gòu)造一個匿名內(nèi)部類

  private void show() {

  Out anonyInter = new Out() {

  // 獲取匿名內(nèi)部類的實例

  void show() {

  System.out.println("調(diào)用匿名類中的 show() 方法");

  }

  };

  anonyInter.show();

  }

  public static void main(String[] args) {

  TestAnonymousInterClass test = new TestAnonymousInterClass();

  test.show();

  }

  }

  程序的輸出結(jié)果如下:

  調(diào)用匿名類中的 show() 方法

  從輸出結(jié)果可以看出,匿名內(nèi)部類有自己的實現(xiàn)。

  提示:匿名內(nèi)部類實現(xiàn)一個接口的方式與實現(xiàn)一個類的方式相同,這里不再贅述。

  匿名類有如下特點:

  1)匿名類和局部內(nèi)部類一樣,可以訪問外部類的所 有成員。如果匿名類位于一個方法中,則匿名類只能訪問方法中 final 類型的局部變量和參數(shù)。

  public static void main(String[] args) {

  int a = 10;

  final int b = 10;

  Out anonyInter = new Out() {

  void show() {

  // System.out.println("調(diào)用了匿名類的 show() 方法"+a); // 編譯出錯

  填寫下面表單即可預(yù)約申請免費試聽java課程!害怕學(xué)不會?助教陪讀,隨時解惑!擔(dān)心就業(yè)?一地學(xué)習(xí),可全國推薦就業(yè)!

預(yù)約申請免費聽java課程

  • 地區(qū):
  • 姓名:
  • 手機(jī):

  System.out.println("調(diào)用了匿名類的 show() 方法"+b); // 編譯通過

  }

  };

  anonyInter.show();

  }

  從 Java 8 開始添加了 Effectively final 功能,在 Java 8 及以后的版本中代碼第 6 行不會出現(xiàn)編譯錯誤,詳情可點擊《Java8新特性之Effectively final》進(jìn)行學(xué)習(xí)。

  2)匿名類中允許使用非靜態(tài)代碼塊進(jìn)行成員初始化操作。

  Out anonyInter = new Out() {

  int i; { // 非靜態(tài)代碼塊

  i = 10; //成員初始化

  }

  public void show() {

  System.out.println("調(diào)用了匿名類的 show() 方法"+i);

  }

  };

  3)匿名類的非靜態(tài)代碼塊會在父類的構(gòu)造方法之后被執(zhí)行。

責(zé)編:fushihao

上一篇:Java8新特性:Effectivelyfinal

下一篇: 沒有了

  • 會計考試
  • 建筑工程
  • 職業(yè)資格
  • 醫(yī)藥考試
  • 外語考試
  • 學(xué)歷考試
彩票| 长治市| 荥阳市| 文山县| 龙门县| 攀枝花市| 彭泽县| 华安县| 台中市| 长宁县| 察哈| 浦县| 宽城| 无极县| 无为县| 宾阳县| 前郭尔| 崇州市| 宁南县| 新竹市| 和林格尔县| 昆明市| 滦南县| 稷山县| 海兴县| 新民市| 淮滨县| 惠来县| 磐安县| 高碑店市| 久治县| 古浪县| 慈利县| 泰兴市| 阿克苏市| 上饶市| 长泰县| 九龙城区| 通州市| 通江县| 临猗县|