程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2SE >> 在Eclipse 3.1中體驗J2SE 5.0的新特性: 第一部分 :枚舉類型(2)

在Eclipse 3.1中體驗J2SE 5.0的新特性: 第一部分 :枚舉類型(2)

編輯:J2SE

4) 點擊 Finish 按鈕, 生成Priority 的類(定義???), 並聲明Priority 的每一個值, 如下圖 2所示:(High, Medium, low從何而來???)

圖 2: 枚舉類型Priority

在創建枚舉類型時,注意幾個重要的概念.

所有創建的枚舉類型都擴展於 Java.lang.Enum. Enum 是在J2SE 5.0 裡定義的一個新 類, 它本身不是枚舉類型.在創建枚舉類型時,必須用enum 關鍵字,不能直接地定義一 個繼承Enum的類來創建一個枚舉類型,盡管所有創建的枚舉類型實際上都是Enum 的子類. 如果直接繼承Enum, compiler 就會報錯(會導致編譯錯誤).如圖3 所示

圖3. 直接繼承Enum 類

枚舉類型裡定義的每一個值都是枚舉類型的一個實例,比方說High是Priority的 一個實例.枚舉類型又是擴展於Enum. 所以枚舉類型的每一個值聲明時, 缺省時都將映射 到Enum(String name, int ordinal) 構造函數中.換句話說,enum Priority {High, Medium, Low } 的實現是調用了下面的Enum 構造函數:

清單2 映射的構造函數調 用

 new Enum< Priority >("High", 0);
 new Enum< Priority >("Medium", 1);
 new Enum< Priority >("Low", 2);

每一個創建的枚舉類型都是Enum 的子類,除 了上面調用父類 Enum 的構造函數外,枚舉類型可以使用參數為定義一些自己的構造函數 .當聲明值時,只需調用此枚舉類型定義的構造函數,而且不必添加 new 關鍵字.在清單3 裡, Priority 的一個實例生成,這個實例就是High (38).

清單3.其它構造函 數調用

enum Priority {
  High (38),
  Medium (36.5),
  Low (5.2);
  double temperature;
  Priority (double p)
      temperature = p;
  }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved