枚举类(Enum)

枚举类(Enum)

  1. 定义:
    • 一组拥有固定且有限类的对象,比如(季节、省份)
  2. 使用:
    • 枚举类声明需要Enum关键词,与class、interface等价
      public enum className{}

    • 枚举类可以拥有自己的成员变量、方法

      public enum  ZeroSeasonTest{
          WIND,RAIN,THUNDER,ELECTLIC; //枚举对象
          int a = 1; //变量
          public void A(){
              //方法,该方法可以被调用,但是必须
          }
      }//这个类只有四个对象,不能new
      
    • 可以实现(implements)多接口(interface)
      这两种实现方法没有任何差别

          //方法1
          public enum  ZeroSeasonTest implements EnumInterfaceTest{
          //该接口仅有一个elt方法
              WIND{
                  @Override
                  public void elt() { }        
              },RAIN{
                  @Override
                  public void elt() { }
              },THUNDER{
                  @Override
                  public void elt() { }
              },ELECTLIC{
                  @Override
                  public void elt() { }
              }; 
          }
      
      //方法2
      public enum  ZeroSeasonTest implements EnumInterfaceTest{
          //该接口仅有一个elt方法
          WIND,RAIN,THUNDER,ELECTLIC;
          @Override
          public void elt() { }
      

      //方法一更加方便枚举对象各自方法的个性化操作。
      //方法二就比较单一,但是可以用swich或者是if进行一系列判断之后的不同动作。
      注意:如果不是用接口,给枚举类定义一个方法可以使用方法二,如果需要使用方法一的样式则必须实现接口,或者在枚举类中定义一个抽象方法,然后各个对象以方法一的样式进行重写

    • 枚举类其父类定义自动继承lang.Enum类,所以不可以继承

    • 不能派生子类

    • 其构造方法必须用private修饰(保证良好的封装性),不能创建枚举对象之外的对象

posted @ 2019-08-11 21:10  zlisang  阅读(60)  评论(0)    收藏  举报