定义枚举类型的例子
public enum Size{ SMALL,MEDIUM,LARGE,EXTRA_LARGE}
此类型是一个类,它刚好有4个实例,在此尽量不要构造新对象。
因此,在比较两个枚举类型的值时,不需要调用equals,直接使用“==”就可以了。
如果需要的话,可以在枚举类型中添加一些构造器,方法和域。当然构造器只是在构造枚举常量的时候被调用,下面是一个实例:
public enum Size
{
SMALL("S"),MEDIUM("M"),LARGE("L"),EXTRA_LARGE("XL");
private String abbreviation;
private Size(String abbreviation){ this.abbreviation=abbreviation;}
public String getAbbreviation(){ return abbreviation;}
}
所有的枚举类型都是Enum类的子类,它们继承了这个类的许多方法。其中最有用的是toString,这个方法能够返回枚举常量名,例如,Size.SMALL.toString()将返回字符串“SMALL”.
toString 的逆方法是静态方法 valueOf。例如,语句:
Size s=Enum.valueOf(Size.class,"SMALL");
将s设置成Size.SMALL.
每个枚举类型都有一个静态的values方法,它将返回一个包含全部,枚举值的数组。例如如下调用:
Size[] values=Size.values();
返回包含元素 Size.SMALL,Size.MEDIUM,Size.LARGE和Size.EXTRA_LARGE的数组。
ordinal方法返回enum声明中枚举常量的位置,位置从0开始计数。例如:Size.MEDIUM.ordinal()返回1;
以下程序演示了枚举类型的工作方式:
运行结果如下:
API java.lang.Enum <E> 5.0
- static Enum valueOf(Class enumClass,String name)
返回指定名字,给定类的枚举常量
String toString()
返回枚举常量名
int ordinal()
返回枚举常量在enum声明中的位置,位置从0开始计数
int compareTo(E other)
如果枚举常量出现在other之前,则返回一个负值,如果this==other,则返回0,否则,返回正值。枚举常量的出现次序在enum声明中给出。