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

原创 2016年08月30日 18:01:55

枚举类:

/** 
 * @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
白色
黄色

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

枚举类:/** * @Description: 颜色枚举类,所有枚举类默认继承public abstract class Enum */ public enum EnumColor { /...
  • javaloveiphone
  • javaloveiphone
  • 2016年08月30日 18:01
  • 1267

常量接口 vs 枚举常量类

原文:http://caerun.iteye.com/blog/458439 把常量定义在接口里与类里都能通过编译,那2者到底有什么区别呢?那个更合理?  1. 常量接口  Ja...
  • Kingson_Wu
  • Kingson_Wu
  • 2015年03月25日 15:00
  • 1772

使用枚举代替常量,简化工作!

距离上一篇博客,不知不觉已经过去三个月了,不禁感叹时光如白驹过隙。这三个月,技术还是那样(囧),但换了份比较满意的工作,摸打滚爬一个月后,终于慢慢熟悉了新公司的业务,也终于可以抽点时间写写博客了,这事...
  • My_TrueLove
  • My_TrueLove
  • 2016年07月30日 19:21
  • 7883

黑马程序员--Java基础加强--01.枚举常量被使用的时候的内存图

枚举常量成员被使用时候的内存图 ----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------ (1). 示例代码 public clas...
  • u011406124
  • u011406124
  • 2013年07月21日 23:28
  • 1333

常量接口 vs 枚举常量类

常量接口 vs 枚举常量类 原文:http://caerun.iteye.com/blog/458439 把常量定义在接口里与类里都能通过编译,那2者到底有什么区别呢?那个更合理?  1...
  • u014143369
  • u014143369
  • 2017年03月12日 00:17
  • 198

枚举常量

2011-04-28 12:20:31| 分类:C/C++语言 | 标签:c枚举变量|字号大中小订阅 1、枚举常量的定义 enum 枚举类型名{常量1,常量2,常量3,....
  • draw5230
  • draw5230
  • 2011年08月23日 18:37
  • 6999

C++语言--数组-6.1----数组在内存中的分布、数组名和函数、枚举常量

前言:2017年第一篇博客,祝大家新年快乐!! 1.数组在内存中的分布 我们来分析为什么a[0]=3?在C++中我们知道数组b中的最大下标角为9,当我们赋值给b[10]时,即使在数组b中下标1...
  • wu371894545
  • wu371894545
  • 2017年02月05日 15:42
  • 269

20131104-excel 枚举常量

XlHighlightChangesTime table: 00C7DE58  xlAllChanges 2  xlSinceMyLastSave 1  xlNotYetReviewed 3   Xl...
  • alga_1
  • alga_1
  • 2013年11月04日 14:24
  • 1384

Java中如何由枚举常量的ordinal值获得枚举常量对象

原博客地址: Java1.5提供了关键字enum,可以通过该关键字方便得定义自己需要的枚举类型,比如 enum Season {     SPRING, SUMMER, AU...
  • goodtalent
  • goodtalent
  • 2014年11月08日 14:18
  • 1352

Java枚举特殊类及其静态常量实例

1.枚举 1.1.作用 为什么要有枚举?   问题: 要定义星期几或性别的变量,该怎么定义?假设用1-7分别表示星期一到星期日,但有人可能会写成int weekday = 0;或即使使用常量方式也无法...
  • marching21
  • marching21
  • 2014年08月18日 22:47
  • 337
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用枚举常量代替接口常量或类常量(一个枚举实例)
举报原因:
原因补充:

(最多只允许输入30个字)