注意枚举类其实也是一个类,因此其一样可以在里边定义成员和方法。
在上边的代码中包含了RED,YELLOW,Green三个匿名内部类,当你编译时你会看到,多出来的三个class文件。还定义了一个私有的成员time,和一个抽象的方法next();
虽然上边定义的枚举元素含有参数,但是其无参的构造器还是存在的。比如说:
public enum Gender
{
//此处的枚举值必须调用对应构造器来创建
MALE("男"),FEMALE("女");
private final String name;
//枚举类的构造器只能使用private修饰
private Gender(String name)
{
this.name = name;
}
public String getName()
{
return this.name;
}
}
其实在枚举中中列出枚举值时就是就是调用构造器创造枚举对象,只是无需new关键字,也不需要现实的调用构造器。前面列出枚举值时无需传入参数甚至无需使用括号,就是因为枚举类包含无参构造器。 |