Java中枚举类入门

一 点睛

J2SE1.5新增了一个enum关键字,用以定义枚举类。枚举类是一种特殊的类,它一样可以有自己的方法和属性,可以实现一个或者多个接口,也可以定义自己的构造器。一个Java源文件中最多只能定义一个public访问权限的枚举类,且该Java源文件也必须和该枚举类的类名相同。

枚举类和普通类的区别:

  • 枚举类可以实现一个或多个接口,使用enum定义的枚举类默认继承了java.lang.Enum类,而不是继承Object类。其中java.lang.Enum类实现了java.lang.Serializable和java.lang. Comparable两个接口。

  • 枚举类的构造器只能使用private访问控制符,如果省略了其构造器的访问控制符,则默认使用private修饰;如果强制指定访问控制符,则只能指定private修饰符。

  • 枚举类的所有实例必须在枚举类中显式列出,否则这个枚举类将永远都不能产生实例。列出这些实例时系统会自动添加public static final修饰,无需程序员显式添加。

  • 所有枚举类都提供了一个values方法,该方法可以很方便地遍历所有的枚举值。

二 实战

1 代码

SeasonEnum.java

public enum SeasonEnum
{
   // 在第一行列出4个枚举实例
   SPRING,SUMMER,FALL,WINTER;
}

EnumTest.java

public class EnumTest
{
   public void judge(SeasonEnum s)
   {
      // switch语句里的表达式可以是枚举值
      switch (s)
      {
         case SPRING:
            System.out.println("春暖花开,正好踏青");
            break;
         case SUMMER:
            System.out.println("夏日炎炎,适合游泳");
            break;
         case FALL:
            System.out.println("秋高气爽,进补及时");
            break;
         case WINTER:
            System.out.println("冬日雪飘,围炉赏雪");
            break;
      }
   }
   public static void main(String[] args)
   {
      // 枚举类默认有一个values方法,返回该枚举类的所有实例
      for (SeasonEnum s : SeasonEnum.values())
      {
         System.out.println(s);
      }
      // 使用枚举实例时,可通过EnumClass.variable形式来访问
      new EnumTest().judge(SeasonEnum.SPRING);
   }
}

2 运行

SPRING
SUMMER
FALL
WINTER
春暖花开,正好踏青

三 补充

Enum类提供了如下几个方法。

四 参考

https://blog.csdn.net/javazejian/article/details/71333103

猜你喜欢

转载自blog.csdn.net/chengqiuming/article/details/92188877