使用枚举(emum)代替常量类

原文:

作者:逍遥不羁
来源:CSDN
原文:https://blog.csdn.net/javaloveiphone/article/details/52371706
版权声明:本文为博主原创文章,转载请附上博文链接!

 

package emum;

/** 
 * @Description: 颜色枚举类,所有枚举类默认继承public abstract class Enum
 */
public enum EnumColor {
    RED(1, "红色"), GREEN(2, "绿色"), BLANK(3, "白色"), YELLO(4, "黄色"), BLUE("蓝色"), BLACK("黑色");

    private int code;
    private String color;

    // 构造函数
    private EnumColor(int code, String color) {
        this.code = code;
        this.color = color;
    }

    private EnumColor(String color) {
        this.color = color;
    }

    // 枚举属性的getter方法
    public int getCode() {
        return code;
    }

    public String getColor() {
        return color;
    }

    // 重写toString()方法
    @Override
    public String toString() {
        return "[code:" + this.code + ",color:" + this.color + "]";
    }

    // 提供静态方法,通过code获取color的值
    public static String colorOf(int code) {
        // EnumColor.values()获取枚举所有实例对象,还有通过名称获取方式EnumColor.valueOf("RED")、EnumColor.valueOf(EnumColor.class,
        // "RED")
        // 遍历枚举所有实例对象
        for (EnumColor color : EnumColor.values()) {
            if (color.getCode() == code) {
                return color.getColor();
            }
        }
        return null;
    }

    public static void main(String[] args) {
        // 通过静态方式直接获取枚举实例对象,打印实例对象自动调用toString()方法
        System.out.println(EnumColor.RED);

        // 获取实例对象之后,获取相关属性信息
        System.out.println(EnumColor.GREEN.getCode());
        System.out.println(EnumColor.GREEN.getColor());

        // 通过valueOf()方法获取枚举实例对象,并获取对象相关信息
        System.out.println(EnumColor.valueOf("BLANK").getCode());
        System.out.println(EnumColor.valueOf(EnumColor.class, "BLANK").getColor());

        // 通过自定义的静态方法colorOf(int code)获取color信息
        // YELLO(4,"黄色")
        System.out.println(EnumColor.colorOf(4));

    }

}

 处理结果

 

posted @ 2018-12-24 14:42  HaniLucky  阅读(707)  评论(0编辑  收藏  举报