Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建枚举和创建java类有什么区别?_Java_Class_Enums - Fatal编程技术网

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

创建枚举和创建java类有什么区别?,java,class,enums,Java,Class,Enums,现在这让我很烦恼。为什么我需要创建一个枚举而不是创建一个普通的java类?它给了我什么额外的优势? 我真的不懂枚举。 现在我在StackOverlaw中看到了这段代码 enum Cats { FELIX(2), SHEEBA(3), RUFUS(7); private int mAge; Cats(int age) { mAge = age; } public int getAge() { return mAge; } } 我想知道为什么它是一

现在这让我很烦恼。为什么我需要创建一个枚举而不是创建一个普通的java类?它给了我什么额外的优势? 我真的不懂枚举。 现在我在StackOverlaw中看到了这段代码

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

  private int mAge;
  Cats(int age) {
    mAge = age;
  }
  public int getAge() {
    return mAge;
   }
}   
我想知道为什么它是一个枚举而不是一个类。。。请给我解释一下。 提前谢谢。 更新:


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

枚举看起来像一个特殊的类,实际上是一个类。它们都是extend
java.lang.Enum
。当我们编译枚举时,它将是一个Cats.class,所有枚举值都将是“publicstaticfinal”。像这样:

public enum Season {
    SPRING, SUMMER, AUTUMN, WINTER;
}
威尔喜欢(不平等):


区别在于:类型安全性和可读性。你可以看到这个帖子:。对于使用枚举

有一些讨论,讨论了类和枚举之间的差异,以及何时使用它们。。整个内容都很值得一读,所以最好去那里,而不是我总结一下。好的,还有一件事我们可以使用enum在机场创建飞机管理(根据时间、队列等)。这取决于你的需要。如果你能想到至少一件事,你知道它将采用一组定义良好的常量值中的一个,那么枚举可能适用于你(例如,航空公司拥有的飞机模型)@pewpew我想我已经做到了。
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;
}