什麼時候用到枚舉類?-- 當取值是某個範圍之一的時候,這時候可以使用枚舉。
枚舉怎麼定義? -- 跟定義類一樣,只是把class改成enum ,如 public enum Season{}
與java中的普通類一樣,在聲明枚舉類時,也可以聲明屬性、方法和構造函數,但枚舉類的構造函數必須爲私有的
枚舉值就相當於實例變量。
- public enum Grade {
- A("A","90-100"),B("B","89-90"),C("C","79-80"),D("D","<60");//聲明瞭屬性
- private String tip;
- private String desc;
- private Grade(String tip,String desc){ //構造方法,私有
- this.tip = tip;
- this.desc = desc;
- }
- public String getTip() {
- return tip;
- }
- public String getDesc() {
- return desc;
- }
- }
枚舉類與普通一致,可以繼承或實現,如果有抽像方法的話,可以利用每個枚舉值以匿名內部類的方式去實現
- public enum WeekDay {
- Mon{
- public void show() {
- System.out.println("星期1");
- }
- },Tue {
- public void show() {
- System.out.println("星期2");
- }
- },Wed {
- public void show() {
- System.out.println("星期3");
- }
- },Thu {
- public void show() {
- System.out.println("星期4");
- }
- };
- public abstract void show();
- }
- public class Demo {
- public static void main(String[] args) {
- WeekDay w = WeekDay.Thu; //不要new WeekDay
- w.show();
- }
- }
上面的也可以用帶屬性的方法實現
- public enum WeekDay {
- Mon("星期一"),Tue("星期二");
- private String tip;
- private WeekDay(String tip){
- this.tip = tip;
- }
- public String getTip() {
- return tip;
- }
- }
- public class Demo3 {
- public static void main(String[] args) {
- WeekDay w = WeekDay.Mon;
- System.out.println(w.getTip());
- }
- }