1 import java.util.*; 2 public class Demo13{ 3 public static void main(String[] args) { 4 Weekday day = Weekday.SUN; 5 //int day = 1; 6 if(day.dayValue == 1 || day.dayValue == 7){ 7 System.out.println("Work at home!"); 8 }else{ 9 System.out.println("Work at office!"); 10 } 11 //由於enum是一個class,每一個枚舉的值都是class實例 12 //返回常量名 13 String s = day.name(); 14 //返回定義的常量的順序,從0開始計數 15 int n = day.ordinal(); 16 System.out.println(s); // SUN 17 System.out.println(n); // 0 18 } 19 } 20 21 /* 22 經過enum定義的枚舉類,和其餘的class有什麼區別? 23 24 1.定義的enum類型老是繼承自java.lang.Enum,且沒法被繼承; 25 26 2.只能定義出enum的實例,而沒法經過new操做符建立enum的實例; 27 28 3.定義的每一個實例都是引用類型的惟一實例; 29 使用enum定義的枚舉類是一種引用類型。前面咱們講到,引用類型比較,要使用equals()方法,若是使用==比較,它比較的是兩個引用類型的變量是不是同一個對象。所以,引用類型比較,要始終使用equals()方法,但enum類型能夠例外 30 31 由於enum類型的每一個常量在JVM中只有一個惟一實例,因此能夠直接用==比較 32 33 if (day == Weekday.FRI) { // ok! 34 } 35 if (day.equals(Weekday.SUN)) { // ok, but more code! 36 } 37 38 4.能夠將enum類型用於switch語句 39 */ 40 enum Weekday{ 41 //定義的每一個枚舉常量都是枚舉類的實例 42 SUN(1),MON(2),TUE(3),WED(4),THU(5),FRI(6),SAT(7); 43 44 //給每一個枚舉常量添加字段 45 public final int dayValue; 46 47 //私有構造器 48 private Weekday(int dayValue){ 49 this.dayValue = dayValue; 50 } 51 }