java 枚舉類型 enum
阿新 • • 發佈:2017-05-26
man port little edi pack 並不會 nal hot class
在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