序言:enum除了不能继承外,我们基本上可以将enum看作一个常规的类,也就说我们定义的enum类可以添加方法也可以实现接口。而enum中的每一个枚举都相当于这个类的一个实例。
    1.添加方法:
    如果打算在enum中定义自己的方法,必须要最后一个enum实例添加分号,同时还要先去定义enum实例。否则编译器会报错。

    1. public enum Ozwitch {
    2. WEST("我是枚举实例一"),
    3. NORTH("我是枚举实例二"),
    4. EAST("我是枚举实例三"),
    5. SOUTH("我是枚举实例四");
    6. private String str;
    7. private Ozwitch(String s){
    8. str=s;
    9. }
    10. public String getStr() {
    11. return str;
    12. }
    13. public static void main(String[] args) {
    14. for (Ozwitch value : Ozwitch.values()) {
    15. System.out.println("value : "+value+": "+value.getStr());
    16. }
    17. }
    18. }
    1. 在上面中我们将Ozwitch的构造器声明为private,但既是我们不显示的声明,对于它的访问权限也无影响。因为每一个enum实例都属于这个enum类所以我们只能在这个类的内部去创建enum实例。<br />** 2.覆盖enum中的方法。**<br /> 我们在enum中覆盖方法和与普通类覆盖是一样的
    1. public enum SpaceShip {
    2. SCOUT,CARGD,TRANSPORT;
    3. @Override
    4. public String toString() {
    5. String id=name();
    6. String lower =id.substring(1).toLowerCase();
    7. return id.charAt(0)+lower;//charAt//返回指定索引位置的char字符。
    8. }
    9. public static void main(String[] args) {
    10. for (SpaceShip value : SpaceShip.values()) {
    11. System.out.println(value);
    12. }
    13. }
    14. }
    1. 上述程序重写了toString 方法,使输出变为首字母大写的形式。