Java 枚举以及使用场景

前言

在 java 编程过程中,我们通常需要定义一些固定数量的常量,在 jdk1.5 以前,通常的做法是定义一个静态常量类,但自 jdk1.5 后,java 引入了枚举(关键字enum,全称为 enumeration,值类型),在枚举中,我们可以把相关的常量分组到一个枚举类型里,枚举也比常量类有更多灵活的用法,使用枚举,可以有效的提高代码的整洁性、可读性、可维护性等等。

枚举

定义使用 enum 关键字。如果枚举不添加如何方法,枚举值默认为从 0 开始的有序数值。

枚举的特性

不能被继承

java 不能使用 = 赋值

enum 可以通过方法显示赋值

enum 可以添加普通方法、静态方法、抽象方法、构造方法

枚举可以实现接口

示例enum Color { RED,GREEN }

优点将常量组织起来,统一管理。

使用场景

1、作为普通的常量使用,如 星期、季节、颜色、城市 等等;通常配合 switch 语句使用。2、往枚举中添加变量、构造函数、以达到灵活获取指定值的目的。3、通常用于一些业务系统中定义一些固定值,如用于匹配数据库中的字段值等。在平时数据库表的设计中,我们一般以数字来代表一些常量,那么在 java 中就可以通过枚举来将数据库字段的数值和所代表的常量对应起来。4、往枚举中添加自己特定方法,以实现自己所需的相关业务逻辑。比如:可以通过状态码获得对应的状态码信息。

枚举不能被继承的原因所有的枚举类型隐性地继承自 java.lang.Enum。(枚举实质上还是类!每个被枚举的成员实质就是一个枚举类型的实例,也就可以理解为平时的对象,他们默认都是 public static final 的。可以直接通过枚举类型名直接使用它们。)

下面是我以前做过的一个电商类的项目使用枚举的代码示例。使用场景就是上面使用场景的 2、3、4。真的是枚举可以让你代码看起来很舒服,而且常量统一管理起来,当项目很大的时候很容易管理。代码演示:

测试类

运行结果

总结强烈建议当你需要定义一组常量时,使用枚举类型。尽量不要使用枚举的高级特性,事实上高级特性都可以使用普通类来实现,没有必要引入复杂性!

在项目中一般都是通过枚举来定义常量数据字典。

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20180719G20T7H00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券