使用枚举常量代替接口常量或类常量(一个枚举实例)

来源:互联网 发布:炒石油软件 编辑:程序博客网 时间:2024/05/16 15:29

枚举类:

/**  * @Description: 颜色枚举类,所有枚举类默认继承public abstract class Enum */public enum EnumColor {    //定义枚举,以静态常量的方式进行定义,并以静态方式[枚举类.实例名]来获取实例对象,如[EnumColor.RED]    //使用的是EnumColor(int code,String color)构造函数    //最后两个使用的是EnumColor(String color)构造函数    RED(1,"红色"), GREEN(2,"绿色"), BLANK(3,"白色"), YELLO(4,"黄色"),BLUE("蓝色"),BLACK("黑色");    //声明的枚举属性,同时生成getter方法    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;    }}

枚举测试类:

/**  * @Description: 枚举测试类 */public class EnumTest {    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));    }}

输出结果:

[code:1,color:红色]2绿色3白色黄色
0 0
原创粉丝点击