枚举类型还是有必要的,以前没有的时候,都是通过定义静态常量,主要就是为了防止硬编码。
枚举类型要注意,可以写构造方法,但是构造方法必须要用private修饰,其实想想就知道为什么要private了,既然都用枚举了,当然不能让你随便new一个对象出来了,不然还要枚举做什么。
下面是示例代码:
public enum WordType {
V("v") {
@Override
public String toString() {
return "sb";
}
}, VT("vt") {
@Override
public String type() {
return "me too";
}
};
public String type() {
return type;
}
private WordType(String type) {
this.type = type;
}
private String type;
@Override
public String toString() {
return type;
}
}
注意的地方就是,枚举出了构造方法必须私有,对象按开头那种方式写以外,其他都和普通java类一样,可以有方法,可以有成员变量,可以在对象后面加个花括号来覆盖某个方法。
下面是测试代码:
public class EnumTest {
public static void main(String[] args) {
System.out.println(WordType.V);// sb
System.out.println(WordType.V.type());// v
System.out.println(WordType.VT);// vt
System.out.println(WordType.VT.type());// me too
}
}