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. }  

 

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