创建枚举比仅仅java类有什么区别?

时间:2014-05-03 04:49:43

标签: java class enums

现在这让我烦恼。为什么我需要创建枚举而不是创建普通的java类?它给我带来了什么额外的好处? 我真的不懂enums。 现在我在stackoverflaw中看到了这段代码。

enum Cats {
  FELIX(2), SHEEBA(3), RUFUS(7);

  private int mAge;
  Cats(int age) {
    mAge = age;
  }
  public int getAge() {
    return mAge;
   }
}   

我想知道为什么它是一个枚举而非一个类......请向我解释一下。 提前致谢。 更新:

我需要这个用于机场的飞机管理。很难弄清楚枚举的位置。那就是它。

1 个答案:

答案 0 :(得分:1)

enum看起来像一个特殊的类,它实际上是一个类。它们都延伸java.lang.Enum<E>。当我们编译枚举时,它将是一个Cats.class,所有枚举值都将是“public static final”。像这样:

public enum Season {
    SPRING, SUMMER, AUTUMN, WINTER;
}

会喜欢(不等于):

public class Season {
    public static final int SPRING = 1;
    public static final int SUMMER = 2;
    public static final int AUTUMN = 3;
    public static final int WINTER = 4;
}

差异在于:类型安全性和可读性。你可以看到这篇文章:What's the use of "enum" in Java?。使用枚举