您的位置 首页 java

一篇文章让你详细了解Java中Enum枚举类的使用

本文是 Java 枚举类型的第三篇文章,对于枚举类型的实现原理和包含的方法特性不了解的小伙伴可以先去参考历史文章中的《Java中的枚举类型( enum )详解》和《详解Java枚举类型(Enum)中的方法》两篇文章。

接下来,我们将深入了解枚举类的使用。

1 扩展 枚举值 与自定义 构造函数

之前,我们讨论枚举类时,主要是针对最简单的枚举类型。每个枚举值只有一个 字符串 ,如:

一篇文章让你详细了解Java中Enum枚举类的使用

但是实际使用中,我们可能想给每个枚举值赋予更多的含义,例如,给每个季节一个中文说明和编码等。

即实现:

一篇文章让你详细了解Java中Enum枚举类的使用

那这样的操作是可以的么?答案是肯定的!可以操作。但是,因为最简单的枚举类型调用了默认的 构造方法 ,如果我们要增加新的含义,则需要自己覆盖原来的构造方法。操作如下:

一篇文章让你详细了解Java中Enum枚举类的使用

我们在枚举类中增加了name/code两个属性,并重新编写了构造方法。实现了我们的要求。

我们编写测试函数:

一篇文章让你详细了解Java中Enum枚举类的使用

得到如下结果:

一篇文章让你详细了解Java中Enum枚举类的使用

2 关于覆盖enum类方法

我们知道,枚举类最终继承了java.lang.Enum 抽象类 ,那么我们能够覆盖java.lang.Enum抽象类中的方法么?

这个当然是可以的。其实在上面的代码中,笔者已经覆盖了java.lang.Enum抽象类中的toString()方法,并得出了自定义的输出。

3 枚举类中定义抽象方法

既然编译器最终将每个枚举值声明为枚举类的实例,那我们能在枚举类中声明抽象方法让枚举值去实现么?

听起来有些不可思议,其实也是可以的。我们在枚举类Season中声明了一个抽象方法sayHello()。然后在创建枚举值时,就必须实现该抽象方法。最终的代码如下:

一篇文章让你详细了解Java中Enum枚举类的使用

然后运行以下测试代码:

一篇文章让你详细了解Java中Enum枚举类的使用

得到输出:

一篇文章让你详细了解Java中Enum枚举类的使用

4 总结

通过这篇文章,我们知道在扩展了构造方法的情况下,我们可以为每个枚举值注入更多的属性。并且,枚举类作为java.lang.Enum抽象类的子类,可以重写父类的方法。同时,每个枚举值作为枚举对象的实例,可以实现枚举对象中定义的抽象方法。

最终,通过《Java中的枚举类型(Enum)详解》《详解Java枚举类型(Enum)中的方法》和本文,我们从原理、特性、使用三个方面对枚举类型进行详细的介绍,该系列到此结束。

大家有相关的问题需要讨论,可以留言互动。


—END—

分享让你从程序员进阶架构师的原创干货!

欢迎关注我们,不错过每期的原创干货!


▼往期精彩文章▼

Java中的枚举类型(Enum)详解

详解Java枚举类型(Enum)中的方法

Java为何能将读与写封装为一个原子操作

Java原子化读并且写操作中存在的问题

漫谈MCU与PLC

文章来源:智云一二三科技

文章标题:一篇文章让你详细了解Java中Enum枚举类的使用

文章地址:https://www.zhihuclub.com/192792.shtml

关于作者: 智云科技

热门文章

网站地图