现在的位置: 首页 > 综合 > 正文

java学习之枚举类

2018年05月19日 ⁄ 综合 ⁄ 共 1195字 ⁄ 字号 评论关闭

什么时候用到枚举类?-- 当取值是某个范围之一的时候,这时候可以使用枚举。

枚举怎么定义? -- 跟定义类一样,只是把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());
  }
}

抱歉!评论已关闭.