zoukankan      html  css  js  c++  java
  • 使用枚举(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));
    
        }
    
    }

     处理结果

  • 相关阅读:
    学习 Message(12): 整合鼠标 Down 消息
    合并两个 Wav 文件流的函数 回复 "刘文强" 的问题
    “博客无双”第一期拍卖活动获奖名单公告
    [获奖公告]“博客无双”12月27日第一期获奖名单
    “博客无双”活动拍卖时间调整公告
    致歉
    祝大家新年快乐
    博客园电子期刊2010年12月刊发布啦
    “博客无双”拍卖活动将于14:00开始
    2011年4月微软最有价值专家(MVP)申请截止时间:2011年1月13日
  • 原文地址:https://www.cnblogs.com/covet/p/10168513.html
Copyright © 2011-2022 走看看