序言:enum除了不能继承外,我们基本上可以将enum看作一个常规的类,也就说我们定义的enum类可以添加方法也可以实现接口。而enum中的每一个枚举都相当于这个类的一个实例。
1.添加方法:
如果打算在enum中定义自己的方法,必须要最后一个enum实例添加分号,同时还要先去定义enum实例。否则编译器会报错。
public enum Ozwitch {
WEST("我是枚举实例一"),
NORTH("我是枚举实例二"),
EAST("我是枚举实例三"),
SOUTH("我是枚举实例四");
private String str;
private Ozwitch(String s){
str=s;
}
public String getStr() {
return str;
}
public static void main(String[] args) {
for (Ozwitch value : Ozwitch.values()) {
System.out.println("value : "+value+": "+value.getStr());
}
}
}
在上面中我们将Ozwitch的构造器声明为private,但既是我们不显示的声明,对于它的访问权限也无影响。因为每一个enum实例都属于这个enum类所以我们只能在这个类的内部去创建enum实例。<br />** 2.覆盖enum中的方法。**<br /> 我们在enum中覆盖方法和与普通类覆盖是一样的
public enum SpaceShip {
SCOUT,CARGD,TRANSPORT;
@Override
public String toString() {
String id=name();
String lower =id.substring(1).toLowerCase();
return id.charAt(0)+lower;//charAt//返回指定索引位置的char字符。
}
public static void main(String[] args) {
for (SpaceShip value : SpaceShip.values()) {
System.out.println(value);
}
}
}
上述程序重写了toString 方法,使输出变为首字母大写的形式。