java學習之枚舉類

 什麼時候用到枚舉類?-- 當取值是某個範圍之一的時候,這時候可以使用枚舉。

枚舉怎麼定義? -- 跟定義類一樣,只是把class改成enum ,如 public enum Season{}

與java中的普通類一樣,在聲明枚舉類時,也可以聲明屬性、方法和構造函數,但枚舉類的構造函數必須爲私有的
枚舉值就相當於實例變量。

  1. public enum Grade { 
  2.   A("A","90-100"),B("B","89-90"),C("C","79-80"),D("D","<60");//聲明瞭屬性 
  3.   private String tip; 
  4.   private String desc; 
  5.   private Grade(String tip,String desc){   //構造方法,私有 
  6.     this.tip = tip; 
  7.     this.desc = desc; 
  8.   } 
  9.   public String getTip() { 
  10.     return tip; 
  11.   } 
  12.   public String getDesc() { 
  13.     return desc; 
  14.   } 

枚舉類與普通一致,可以繼承或實現,如果有抽像方法的話,可以利用每個枚舉值以匿名內部類的方式去實現

 

  1. public enum WeekDay { 
  2.   Mon{ 
  3.     public void show() { 
  4.       System.out.println("星期1"); 
  5.     } 
  6.   },Tue { 
  7.     public void show() { 
  8.       System.out.println("星期2"); 
  9.     } 
  10.   },Wed { 
  11.     public void show() { 
  12.       System.out.println("星期3"); 
  13.     } 
  14.   },Thu { 
  15.     public void show() { 
  16.       System.out.println("星期4"); 
  17.     } 
  18.   }; 
  19.   public abstract void show(); 
  20.  
  21. public class Demo { 
  22.   public static void main(String[] args) { 
  23.     WeekDay w = WeekDay.Thu; //不要new WeekDay 
  24.     w.show(); 
  25.   } 

上面的也可以用帶屬性的方法實現

 

  1. public enum WeekDay { 
  2.   Mon("星期一"),Tue("星期二"); 
  3.   private String tip; 
  4.   private WeekDay(String tip){ 
  5.     this.tip = tip; 
  6.   } 
  7.   public String getTip() { 
  8.     return tip; 
  9.   } 
  10.  
  11. public class Demo3 { 
  12.   public static void main(String[] args) { 
  13.     WeekDay w = WeekDay.Mon; 
  14.     System.out.println(w.getTip()); 
  15.   } 
  16. }  

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章