序言: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;@Overridepublic 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 方法,使输出变为首字母大写的形式。
