黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java匿名內部類的概念

Java匿名內部類的概念

更新時間:2022-12-21 12:29:23 來源:動力節點 瀏覽1786次

匿名類是沒有名稱的本地類。使用new運算符在一個簡潔的表達式中定義和實例化匿名類。本地類定義是 Java 代碼塊中的一條語句,而匿名類定義是一個表達式,這意味著它可以作為更大表達式(例如方法調用)的一部分包含在內。當一個本地類只被使用一次時,考慮使用匿名類語法,它將類的定義和使用放在完全相同的地方。

用匿名類實現的枚舉

公共 java.util.Enumeration 枚舉(){
  // 匿名類被定義為返回語句的一部分
  返回新的 java.util.Enumeration() {
    可連接電流;= 頭;
    { 當前 = 頭; } // 用實例初始化器替換構造函數
    public boolean hasMoreElements() { return (current != null); }
    公共對象 nextElement() {
      if (current == null) throw new java.util.NoSuchElementException();
      對象值=當前;
      current = current.getNext();
      返回值;
    }
  }; // 注意所需的分號:它終止返回語句
}

匿名類的一個常見用途是提供適配器類的簡單實現。適配器類是定義由其他某個對象調用的代碼的類。以java.io.File類的list()方法 為例。此方法列出目錄中的文件。不過,在返回列表之前,它會將每個文件的名稱傳遞給您必須提供的FilenameFilter對象。此FilenameFilter對象接受或拒絕每個文件。當您實現 FilenameFilter接口時,您正在定義一個適配器類以與File.list()一起使用方法。由于此類的主體通常很短,因此很容易將適配器類定義為匿名類。以下是如何定義FilenameFilter類以僅列出名稱以.java 結尾的那些文件:

文件 f = 新文件("/src"); // 要列出的目錄
// 現在用一個 FilenameFilter 參數調用 list() 方法
// 定義并實例化 FilenameFilter 的匿名實現
// 作為方法調用表達式的一部分。
String[] filelist = f.list(new FilenameFilter() {
  public boolean accept(File f, String s) { return s.endsWith(".java"); }
}); // 不要忘記結束方法調用的括號和分號!

如您所見,定義匿名類和創建該類實例的語法使用new關鍵字,后跟類名和花括號中的類主體定義。如果new關鍵字后面的名稱是類的名稱,則匿名類是命名類的子類。如果new后面的名稱指定了一個接口,如前兩個示例所示,匿名類將實現該接口并擴展Object。該語法不包括任何指定 擴展子句、 實現子句或類名稱的方法。

因為匿名類沒有名稱,所以不可能在類主體中為它定義構造函數。這是對匿名類的基本限制之一。您在匿名類定義中超類名稱后的括號中指定的任何參數都隱式傳遞給超類構造函數。匿名類通常用于子類化不帶任何構造函數參數的簡單類,因此匿名類定義語法中的括號通常為空。在前面的示例中,每個匿名類都實現了一個接口并擴展了Object。由于Object()構造函數不帶參數,因此這些示例中的括號為空。

匿名類的特點

關于匿名類的最優雅的事情之一是它們允許您在需要的地方準確地定義一次性類。此外,匿名類的語法簡潔,可以減少代碼中的混亂。

匿名類的限制

因為匿名類只是本地類的一種,所以匿名類和本地類具有相同的限制。匿名類不能定義任何靜態字段、方法或類,靜態最終 常量除外。接口不能匿名定義,因為沒有名字就無法實現接口。此外,與本地類一樣,匿名類不能是 public、private、 protected或static。

由于匿名類沒有名稱,因此不可能為匿名類定義構造函數。如果您的類需要構造函數,則必須改用本地類。但是,您通常可以使用實例初始值設定項來替代構造函數。事實上,正是出于這個目的,將實例初始化程序引入了該語言。

定義匿名類的語法結合了定義和實例化。因此,如果每次執行包含塊時都需要創建該類的多個實例,則使用匿名類而不是本地類是不合適的。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 久久久香蕉视频 | 亚洲国产91在线 | 日韩在线视频免费播放 | 成人午夜在线 | 午夜日韩视频 | 日韩午夜在线视频不卡片 | 午夜精品久久久久久久第一页 | 欧美专区亚洲专区 | 干干操操| 中文字幕日本一区 | 香蕉视频免费在线观看 | 青草成人 | 午夜剧场免费体验 | 欧美日韩国产中文字幕 | 欧美日韩国产一区二区三区 | 干干操操| 最近最好的中文字幕2019免费 | 日本激情一区二区三区 | 天天好比 | 亚洲天堂在线观看视频 | 91日本在线观看亚洲精品 | 最新色站 | 日韩一区二区在线观看 | 国产精品久久久久久久久久直 | 色视频网址 | 国产精品久久久久久久久鸭 | 久久精品人人爽人人爽 | 可以直接看的av网址站 | 日本黄网站| 亚洲夜夜操 | 毛片免费在线观看网址 | 麻豆日记| 国产午夜精品一二区理论影院 | 一级女性全黄生活片免费 | 99国产精品久久久久久久成人热 | 男女啪啪猛烈到合不拢腿小说网 | 日韩欧美网 | 视频在线日韩 | 黄色网址视频在线播放 | 草的爽免费视频 | 一个人看的www片免费中文 |