JAVA枚举类型的应用

  JDK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却对开发有很大的帮助。

枚举的相关用法

  用法一:

   在JDK1.5 之前,我们定义常量都是: public static fianl…. 。现在好了,有了枚举,可以把

  相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。

public enum Color {  
  RED, GREEN, BLANK, YELLOW  
} 

  用法二:

    JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。

enum Signal {  
    GREEN, YELLOW, RED  
}  
public class TrafficLight {  
    Signal color = Signal.RED;  
    public void change() {  
        switch (color) {  
        case RED:  
            color = Signal.GREEN;  
            break;  
        case YELLOW:  
            color = Signal.RED;  
            break;  
        case GREEN:  
            color = Signal.YELLOW;  
            break;  
        }  
    }  
}  

  用法三:

    如果打算自定义自己的方法,那么必须在enum实例序列的最后添加一个分号。而且 Java

    要求必须先定义 enum 实例。

public enum Color {  
    RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);  
    // 成员变量  
    private String name;  
    private int index;  
    // 构造方法  
    private Color(String name, int index) {  
        this.name = name;  
        this.index = index;  
    }  
    // 普通方法  
    public static String getName(int index) {  
        for (Color c : Color.values()) {  
            if (c.getIndex() == index) {  
                return c.name;  
            }  
        }  
        return null;  
    }  
    // get set 方法  
    public String getName() {  
        return name;  
    }  
    public void setName(String name) {  
        this.name = name;  
    }  
    public int getIndex() {  
        return index;  
    }  
    public void setIndex(int index) {  
        this.index = index;  
    }  
}  

更多有关ENUM的用法参考:

  http://blog.lichengwu.cn/java/2011/09/26/the-usage-of-enum-in-java/

  https://blog.csdn.net/qq_27093465/article/details/52180865

在使用ENUM时建议遵循的规范

1、枚举类名建议带上ENUM后缀,枚举成员名称需要全部大写,单词间用下划线隔开。
  说明:枚举其实就是特殊的常量类,且构造方法被默认强制私有。
  举例:
    枚举名字:DealStatusEnum
    成员名称:SUCCESS/UNKOWN_REASON
2、所有的枚举类型字段必须要有注释,说明每个数据项的用途
3、枚举类型对象之间的值比较,可以使用==,直接来比较值是否相等,不是必须使用equals方法的

4、枚举类的构造函数只能是私有的。

 

猜你喜欢

转载自www.cnblogs.com/leilong/p/8988021.html