java中的枚举类

枚举类(enum),与class和interface关键字地位相同。

枚举类是一个特殊的类,可以有自己的成员变量、方法、构造器,可以实现一个或多个接口。一个java源文件中只能有一个public的enum类。

枚举类终究不是普通类,它与普通类有什么区别呢?

  enum默认继承的是java.lang.Enum类,而不是Object类。enum类不能显式继承其他父类。

  使用enum定义、非抽象的枚举类默认会使用final修饰,因此enum类不能被继承(不能派生子类)。

  枚举类的构造器只能使用private来修饰。

  枚举类的所有实例只能在枚举类的第一行显式列出。系统会自动添加public static final 修饰,程序员无需显式添加。

  枚举类提供了一个values()方法,可以很方便的遍历enum的值。 

public enum SeasonEnum
{
  //列出4个枚举实例
  SRING,SUMMER,FALL,WINTER; }

这个类等价于:

public static final int SEASON_SPRING=1;
public static final int SEASON_SUMMER=2;
public static final int SEASON_FALL=3;
public static final int SEASON_WINTER=4;

  

遍历SeasonEnum类的方法:

public class EnumTest
{
  public void judge(SeasonEnum s)
  {
    switch(s)
    {
      case SRING:
        syso(“春”);
        break;
      case SUMMER:
        syso("夏");
        break;
      ......
    }
  }

  //main方法   main()   {     for(SeasonEnum s:SeasonEnum.values())
    {
      Syso(s);
    }

    new EnumTest().judge(SeasonEnum.SUMMER);//使用枚举类的类名SeasonEnum调用实例
  }
}

  

原文地址:https://www.cnblogs.com/lixiaolun/p/4319160.html