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

枚举类:

/** 
 * @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
白色
黄色
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值