枚举的基本应用:
  举例:定义一个Weekday的枚举
  package cn.itcast.day1;

public class EnumTest {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  
  //MON是一个对象,是WeekDay类型的。
  WeekDay1 weekDay = WeekDay1.MON;
  System.out.println(weekDay.nextDay());
  //这个FRI是一个对象。
  WeekDay weekDay2 = WeekDay.FRI;
  System.out.println(weekDay2);
  System.out.println(weekDay2.name());
  //排行几
  System.out.println(weekDay2.ordinal());
  System.out.println(weekDay2.getClass());
  System.out.println(WeekDay.valueOf("SUN"));
  System.out.println(WeekDay.values().length);
  
  
  
 }
 
 //定义了一个枚举,枚举相当一个类,
 public enum WeekDay{
  //这个里面的元素相当与一个实例对象
  SUN,MON,TUE,WED,THI,FRI,SAT;
  
 }
 
 

}

  扩展:枚举类的valuse,valueOf,name,toString,ordinal等方法
  总结:枚举是一种特殊的类,其中的每个元素都是该类的一个实例对象。
  

实现带有构造方法的枚举:
  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;}
  
 }