【问题标题】:What is the difference between creating an enum than a just java class? [duplicate]创建枚举与创建 java 类有什么区别? [复制]
【发布时间】:2014-05-03 04:49:42
【问题描述】:

现在这让我很困扰。为什么我需要创建一个枚举而不是创建一个普通的 java 类?它给了我什么额外的好处? 我真的不明白枚举。 现在我在 stackoverflaw 中看到了这段代码。

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

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

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

我需要这个来管理机场的飞机。很难弄清楚在哪里放置枚举。就是这样。

【问题讨论】:

  • 有一些讨论 herehere 讨论了类和枚举之间的区别,以及何时使用它们。
  • This is a really good read on the subject。整本书都值得一读,所以最好去那里而不是我总结它。
  • 好吧,我们还可以使用枚举在机场创建飞机管理(根据时间、队列等)吗? .
  • 取决于您的需求。如果你能想到至少一个你知道会采用一组明确定义的常量值中的一个的东西,那么枚举可能对你有用(例如航空公司拥有的飞机模型)
  • @pewpew 我想我明白了。

标签: java class enums


【解决方案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?。使用枚举

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-16
    • 2016-11-26
    • 1970-01-01
    • 2018-09-25
    • 1970-01-01
    • 1970-01-01
    • 2019-10-12
    相关资源
    最近更新 更多