---- 枚举

来源:互联网 发布:广电宽带是什么网络 编辑:程序博客网 时间:2024/06/07 03:38

 

 枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则编译器就会报告。

利用枚举发现某些数据编译时就控制源程序中填写的非法值
public class EnumTest {
 public static void main(String[] args) {
  
  WeekDay weekDay2=WeekDay.FRI;
  System.out.println(weekDay2);
  System.out.println(weekDay2.name());
  System.out.println(weekDay2.ordinal());//排行
  System.out.println(WeekDay.valueOf("SUN").toString());
  System.out.println(WeekDay.values().length);
 
  new Date(300){};
 }
 
 public enum WeekDay{
  SUN(1),MON,TUE,WED,THI,FRI,SAT;
  private WeekDay(){System.out.println("first");}
  //构造函数私有
  private WeekDay(int day){System.out.println("second");}
 }
 
 public enum TrafficLamp{
  RED(30){//调用有参的构造方法
   public TrafficLamp nextLamp() {
    return GREEN;
   }
   
  },GREEN(45){
   public TrafficLamp nextLamp() {
    return YELLOW;
   }
   
  },YELLOW(5){
   public TrafficLamp nextLamp() {
    return RED;
  }
   
  };//实现带有抽象方法的枚举
  public abstract TrafficLamp nextLamp();
  private int time;
  private TrafficLamp(int time){this.time=time;}
 }
}

原创粉丝点击