首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java 匿名類與匿名對象區別:有無類體定義是關鍵

     編輯:程式設計綜合問答

面試高頻考點,一句話區分:

  • 匿名對象:new Person(); — 已有類定義,僅創建實例無變量引用
  • 匿名類:new Person() { String name; }; — **現場定義類體**(字段/方法),同時創建實例

判斷標準

能否說出類的名字?說不出 → 匿名類/對象。
若類體在 new 表達式內部定義 → 匿名類;若類體在別處預定義 → 匿名對象。

典型應用場景

場景用法類型
一次性監聽器btn.setOnClickListener(new OnClickListener(){...})匿名類
臨時數據容器list.add(new Object(){int x=1;});匿名類
僅需一次的工具對象new ArrayList().add("x");匿名對象

匿名方法?

Java 8 前無匿名方法概念。Lambda 表達式 () -> {} 可視為函數式接口的匿名實現,本質仍是匿名類語法糖。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved