黑马程序员技术交流社区

标题: 浅析枚举 [打印本页]

作者: 孙宁洋    时间: 2013-5-31 21:01
标题: 浅析枚举
1.为什么要有枚举

  枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器就会报错。枚举可以让编译器在编译时就可以控制源程序中填写的非法值,普通变量的方式在开发阶段无法实现这一目标

2.枚举应用

   ---私有的构造方法

---每个元素分别用一个公有的静态成员变量表示

---可以有若干个公有方法

----枚举就相当于一个类,其中也可以定义构造方法、成员变量、普通方法和抽象方法

-----枚举元素必须位于枚举体中的最开始部分,枚举元素列表的后面要有分号与其他成员分隔,把枚举

-----枚举只有一个成员时,就可以作为一种单例的实现方式。

应用举例:

public EnumTest{

   public static void main(String []args)

    {

        WeekDay weekDay2=WeekDay.FRI;

        System.out.println(weekDay2);//FRI

         System.out.println(weekDay2.name());//FRI

         System.out.println(weekDay2.ordinal());//5 ---排行

          System.out.println(WeekDay.valueof("SUN").toString);//静态方法---toString

          System.out.println(WeekDay.values().length);//枚举成员数组

       }

  public enum WeekDay{

  

      SUN(1),MON,TUE,WED,THI,FRI,SAT;//元素列表必须放在前段

      private WeekDay(){}//构造方法

      private WeekDay(int day){}

    }



// 带有抽象方法的枚举--交通灯

  public enum TrafficLamp{

       RED(30){

            public TrafficLamp nextLamp(){

              return GREEN;

              }

           },

       GREEN(45){

               public TrafficLamp nextLamp(){

                return YELLOW;

                }

             },

       YELLOW(10){

                 public TrafficLamp nextLamp(){

                    return RED;

                    }

               };

       public abstract TrafficLamp nextLamp();

       private int time;

       private TrafficLamp (int time){this.time=time;}

     }

}















欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2