Java Enum 与 C++ 和其他传统 Enum 有何不同?

2024-04-26

我们从 java 1.5 获得的枚举与 C++ 和其他传统枚举类型有何不同。


在 Java 中,枚举是复杂的对象,而在 C++ 中,每个枚举对象都与单个整数值相关联。在 java 中,您可以将多个属性与单个枚举值关联:

enum MyCategory {
   SPORT("The sport category", "sport.png"),
   NEWS("the news category", "news.jpg");

   private String description;
   private String iconPath;

   private MyCategory(String description, String iconPath) {
       this.description = description;
       this.iconPath = iconPath;
   }

   public String getDescription() {
       return description;
   }

   public String getIconPath() {
       return iconPath;
   }
}

此外,在java中你可以switch仅数字类型、字符串和枚举。但是我不能将传统枚举概括为一个整体......

EDITjava 枚举可以做的另一件事是声明每个值操作(取自java教程 http://docs.oracle.com/javase/1.5.0/docs/guide/language/enums.html):

public enum Operation {
  PLUS   { double eval(double x, double y) { return x + y; } },
  MINUS  { double eval(double x, double y) { return x - y; } },
  TIMES  { double eval(double x, double y) { return x * y; } },
  DIVIDE { double eval(double x, double y) { return x / y; } };

  // Do arithmetic op represented by this constant
  abstract double eval(double x, double y);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java Enum 与 C++ 和其他传统 Enum 有何不同? 的相关文章

随机推荐