下面先看两个典型的枚举类的例子:
public enum Size{SMALL,MEDIUM,LAEGE,EXTRA_LAEGE};
public enum Direction{LEFT,RIGHT,UP,DOWN};
实际上这就是声明就是一个类,它们刚好有四个实例。(注意在比较枚举类型的值时。永远不要调用equals。直接用==即可)。当然如果需要的话,可以
在枚举类里添加一些构造器,方法,和属性,例如下面的棋子类:
/**枚举也可以象一般的类一样添加方法和属性,你可以为它添加静态和非静态的属性或方法,这一切都象你在一般的类中做的那样.*/
public enum Chessman { BLACK("●"),WHITE("○");//这一句也就是枚举列表必须写在最前面,否则报错。 private String chessman;
/** * 私有构造器 * @param chessman */ private Chessman(String chessman) { this.chessman = chessman; } /** * * @return黑棋或者白旗 */ public String getChessman() { return this.chessman; }}
注意正如该例程一样,枚举类的构造器的权限都是private,表明此类是不可以通过外部创建的,只能在此类的内部创建, BLACK("●"),WHITE("○");
等同于下列代码 public static final Chessman BlACK = new Chessman("●");
public static final Chessman WIGHT = new Chessman("○");
所有格枚举类型都是Enum 的子类,它们继承了这个类的许多方法,其中最有用的就是toString();这个方法能够返回枚举的常量名,例如Size.SMALL.toString()返回的将是字符串“SMALL"
每个枚举类型都有一个静态的value方法,它将返回全部枚举值的数组,知道了有values方法,我们可以轻车熟路地用ForEach循环来遍历了枚举值了。 for (Size size: Size.values()) System.out.println(“find value:” + size);;