標籤:log pre 執行個體 組合 port 自己 dem 解決 並且
在java SE5中添加了枚舉類型,即enum關鍵字。在這之前,當你需要建立一個整形常量集時,但是這些枚舉值並不會必然的將其自身的取值限制在這個常量集的範圍之內,因此這樣做的顯得不安全,也不方便使用。現在有了enum,就解決了上述的問題。
雖然enum看起來像一張新的資料類型,事實上enum是一個類,並且也有自己的方法(toString() ordinal() static values())。在使用的時候我們可以把enum當作一種建立資料類型的方式。
枚舉類型的執行個體是常量,因此都用大寫字母表示。
1、先建立一個枚舉類型
1 package enumDemo; 2 /** 3 * 建立enum類型 4 * @author dyf 5 * 6 */ 7 public class Enum { 8 public enum test{ 9 NOT,10 MILD,11 MEDIUM,12 HOT,13 FLAMING;14 }15 }
2、測試enum自己的方法(toString() ordinal() static values()),
1 package enumDemo; 2 /** 3 * 測試enum自己的方法toString() ordinal() static values() 4 */ 5 import enumDemo.Enum.test; 6 7 public class TestEnum { 8 public static void main(String[] args) { 9 //-----------------------------------------------10 /**11 * 枚舉類的使用12 */13 test e = test.MEDIUM;14 System.out.println(e);15 //-----------------------------------------------16 17 /**18 * 建立enum時,編譯器會自動添加一些有用的特性。如19 * toString 方法,顯示enum執行個體的名字20 * ordinal() static values()方法,表示某個特定enum常量的聲明順序21 */22 for (test t : test.values()) {23 System.out.println(t + "---ordinal---" + t.ordinal());24 }25 26 //-----------------------------------------------27 28 }29 }
列印結果:
MEDIUM
NOT---ordinal---0
MILD---ordinal---1
MEDIUM---ordinal---2
HOT---ordinal---3
FLAMING---ordinal---4
3、enum和switch結合使用,由於switch是要在有限的可能值集合中進行選擇,因此與enum正式絕佳的組合。
1 package enumDemo; 2 /** 3 * enum與switch結合使用 4 */ 5 import enumDemo.Enum.test; 6 7 public class TestEnumAndSwitch { 8 test t; 9 public TestEnumAndSwitch(test t){10 this.t = t;11 }12 13 public void describe(){14 System.out.println("This TestEnumAndSwitch is ");15 switch(t){16 case NOT: System.out.println("not spicy at all");17 break;18 case MILD: System.out.println("=========1");19 case MEDIUM: System.out.println("a little hot");20 break;21 case HOT: System.out.println("=========2");22 case FLAMING: System.out.println("=========3");23 default: System.out.println("maybe too hot");24 }25 }26 27 public static void main(String[] args) {28 TestEnumAndSwitch 29 t1 = new TestEnumAndSwitch(test.NOT),30 t2 = new TestEnumAndSwitch(test.MEDIUM),31 t3 = new TestEnumAndSwitch(test.HOT);32 t1.describe();33 t2.describe();34 t3.describe();35 }36 }
列印結果:
This TestEnumAndSwitch is
not spicy at all
This TestEnumAndSwitch is
a little hot
This TestEnumAndSwitch is
=========2
=========3
maybe too hot
java 枚舉類型 enum