枚舉類 Enum 之初認識

 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 }
相關文章
相關標籤/搜索