最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

簡單談談java中匿名內(nèi)部類構(gòu)造函數(shù)

 更新時間:2015年11月08日 09:37:54   投稿:hebedich  
這篇文章主要簡單給我們介紹了java中匿名內(nèi)部類構(gòu)造函數(shù),并附上了簡單的示例,有需要的小伙伴可以參考下。

先看看下面的代碼能不能編譯通過:

public static void main(String[] args) {
List l1 = new ArrayList();
List l2 = new ArrayList(){};
List l3 = new ArrayList(){{}};
System.out.println(l1.getClass() == l2.getClass() );
System.out.println(l2.getClass() == l3.getClass() );
System.out.println(l1.getClass() == l3.getClass() );
}

答案是能通過編譯,輸出3個false。l1很容易理解,就是聲明了一個

ArrayList對象,那么l2、l3是什么呢?

l2是一個匿名類內(nèi)部類對象,繼承ArrayList;

l3語句有些古怪,帶了兩個大括號,其實我們這樣寫就會明白了,這也是一個匿名內(nèi)部類的定義,它的代碼類似如下:

class Sub extends ArrayList {
{
//初始化代碼塊
}
}
List l3 = new Sub();

看到了吧,就是多了一個初始化代碼塊而已,起到構(gòu)造函數(shù)的功能。當然一個類中的構(gòu)造代碼塊可以有多個,下面的代碼是可以編譯的:

List l4 = new ArrayList(){{}{}{}};

匿名內(nèi)部類雖然可以用一個初始化代碼塊來充當構(gòu)造函數(shù),但其構(gòu)造函數(shù)還是進行了特殊的處理,它在初始化時直接調(diào)用父類的同參構(gòu)造函數(shù),然后在調(diào)用自己的代碼塊,例如:

List l5 = new ArrayList(5){
{
System.out.println("我是匿名內(nèi)部類");
}
};

等價于:

class Sub extends ArrayList{
{
System.out.println("我是匿名內(nèi)部類");
}
Sub(int num){
super(num);
}
}
List l5 = new Sub(5);

我們來看段示例代碼

package testtest; 
 
public class Main { 
 
  public static void main(String[] args) { 
    InnerTest inner = new InnerTest(); 
    Test t = inner.get(3); 
    System.out.println(t.getI()); 
  } 
} 
 
class Test { 
 
  private int i; 
 
  public Test(int i) { 
    this.i = i; 
  } 
 
  public int getI() { 
    return i; 
  } 
} 
 
class InnerTest { 
 
  public Test get(int x) { 
    return new Test(x) { 
 
      @Override 
      public int getI() { 
        return super.getI() * 10; 
      } 
    }; 
  } 
} 

編譯之后得到4個class文件:Test.class,InnerTest.class,InnerTest$1.class以及Main.class。容易看出來,Main.class是測試類的class文件,Test.class是超類Test的class文件,InnerTest.class是InnerTest 的class文件,最值得關注的就是匿名內(nèi)部類的class文件InnerTest$1.class。

相關文章

  • java.lang.IncompatibleClassChangeError異常的問題解決

    java.lang.IncompatibleClassChangeError異常的問題解決

    本文主要介紹了java.lang.IncompatibleClassChangeError異常的問題解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-06-06
  • Java手機號碼工具類示例詳解(判斷運營商、獲取歸屬地)

    Java手機號碼工具類示例詳解(判斷運營商、獲取歸屬地)

    這篇文章主要介紹了Java手機號碼工具類示例詳解,通過手機號碼來判斷運營商獲取歸屬地,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • Java設計模式--適配器模式詳解

    Java設計模式--適配器模式詳解

    這篇文章主要介紹了java設計模式之適配器模式Adapter的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Java Volatile應用單例模式實現(xiàn)過程解析

    Java Volatile應用單例模式實現(xiàn)過程解析

    這篇文章主要介紹了Java Volatile應用單例模式實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • 熟練掌握Java8新特性之Stream API的全面應用

    熟練掌握Java8新特性之Stream API的全面應用

    Stream是Java8的一大亮點,是對容器對象功能的增強,它專注于對容器對象進行各種非常便利、高效的 聚合操作(aggregate operation)或者大批量數(shù)據(jù)操作。Stream API借助于同樣新出現(xiàn)的Lambda表達式,極大的提高編程效率和程序可讀性,感興趣的朋友快來看看吧
    2021-11-11
  • SpringBoot數(shù)據(jù)庫查詢超時配置詳解

    SpringBoot數(shù)據(jù)庫查詢超時配置詳解

    這篇文章主要介紹了SpringBoot數(shù)據(jù)庫查詢超時配置,超時配置可以避免長時間占用數(shù)據(jù)庫連接,提高系統(tǒng)的響應速度和吞吐量,還可以快速的反饋可以提升用戶體驗,避免用戶因長時間等待而感到挫敗,文中有詳細的代碼示例供大家參考,需要的朋友可以參考下
    2024-11-11
  • spring狀態(tài)機模式使用小結(jié)

    spring狀態(tài)機模式使用小結(jié)

    說起Spring狀態(tài)機,大家很容易聯(lián)想到這個狀態(tài)機和設計模式中狀態(tài)模式的區(qū)別是啥呢?沒錯,Spring狀態(tài)機就是狀態(tài)模式的一種實現(xiàn),在介紹Spring狀態(tài)機之前,讓我們來看看設計模式中的狀態(tài)模式,需要的朋友可以參考下
    2024-04-04
  • idea版本更新安裝教程詳解

    idea版本更新安裝教程詳解

    idea的更新版本比較特殊,需要重新安裝一下,這篇文章給大家介紹idea版本更新安裝教程詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2020-11-11
  • Java基于TCP方式的二進制文件傳輸

    Java基于TCP方式的二進制文件傳輸

    這篇文章主要為大家介紹了Java基于TCP方式的二進制文件傳輸,一個基于Java Socket協(xié)議之上文件傳輸?shù)耐暾纠?,基于TCP通信完成,感興趣的小伙伴們可以參考一下
    2016-01-01
  • JDBC獲取數(shù)據(jù)庫連接的5種方式實例

    JDBC獲取數(shù)據(jù)庫連接的5種方式實例

    JDBC是一種用于執(zhí)行SQL語句的JavaAPI,為多種關系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成,提供了諸如查詢和更新數(shù)據(jù)庫中數(shù)據(jù)的方法,這篇文章主要給大家介紹了關于JDBC獲取數(shù)據(jù)庫連接的5種方式,需要的朋友可以參考下
    2022-06-06

最新評論

富蕴县| 汉源县| 河东区| 石棉县| 泽普县| 库伦旗| 图片| 泸州市| 隆子县| 延长县| 桐梓县| 柯坪县| 彭州市| 吴川市| 肥东县| 出国| 仁怀市| 海安县| 永安市| 化德县| 册亨县| 安吉县| 屯昌县| 沾益县| 塘沽区| 唐河县| 望谟县| 萨迦县| 晋州市| 泉州市| 衡东县| 垫江县| 固原市| 泰来县| 绍兴县| 长海县| 图片| 垣曲县| 桦甸市| 南通市| 保亭|