博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java(二十二)枚举
阅读量:6905 次
发布时间:2019-06-27

本文共 936 字,大约阅读时间需要 3 分钟。

hot3.png

枚举类:实例有限而且固定的类。

在早期,使用一些静态常量来表示枚举,但存在很多问题:类型不安全、没有命名空间,打印输出的值没有具体意义。

jdk 1.5 以后添加了枚举类。用关键字enum来表示,跟class、interface的地位是相同的。

枚举类是一种特殊的类:

  1. 继承了 java.lang.Enum 而不是Object类,所以不能显式继承其他父类。java.lang.Enum 类实现了两个接口:java.lang.Serializable 和 java.lang.Comparable。

  2. 使用enum定义、非抽象的枚举类默认会用final修饰,因此不能派生子类。

  3. 枚举类的构造器只能用private来修饰。

  4. 枚举类的所有实例必须显式在第一行声明,否则永远不能构建实例。

如果想要使用枚举类的某个实例,可以用 枚举类名.实例名 的形式调用。

枚举类提供了一个values方法,可以很方便的用来遍历枚举类:

for( 枚举类名 s : 枚举类名.values() ){

}

注意: jdk 1.5 以后,switch控制语句可以使用枚举类,case语句判断时直接用枚举类的实例名,不用加枚举类的限定。

java.lang.Enum类提供了几个方法:

int compareTo() :比较顺序。

String name() :返回该枚举类实例的名称。

String toString() :与name() 方法相似,也是返回实例的名称,但是更为常用。

int ordinal() :返回枚举实例在枚举类中的索引值。

实现接口的枚举类:

可以由枚举类来实现接口的方法,这样所有的枚举值调用同一个方法。

也可以每个枚举值分别实现接口的方法,这样调用每个枚举值的方法的时候就不一样。

包含抽象方法枚举类:

不同的枚举值对同一个方法有不同的实现的时候,可以定义这个方法为抽象方法。然后四个枚举值提供不同的实现。

在枚举类里定义抽象方法时,不能显式的为枚举类添加abstract关键字,但系统会隐式的添加。

因为枚举类需要显式的创建枚举值,所以每个枚举值必须提供抽象方法的实现。

转载于:https://my.oschina.net/u/2541938/blog/610389

你可能感兴趣的文章
准备PPT过程中的一些文档记录
查看>>
Catel(翻译)-为什么选择Catel
查看>>
SQL Server 数据库备份和还原
查看>>
微信小程序 - 贝塞尔曲线(购物车效果)
查看>>
C#在64位操作系统上连接Oracle的问题和解决方案
查看>>
使用 IntraWeb (11) - 基本控件之 TIWButton
查看>>
Python数据结构——散列表
查看>>
javaScript之function定义
查看>>
PowerShell常用的.Net 、COM对象(New-Object、Assembly)、加载程序集
查看>>
JAVASCRIPT+DHTML实现表格拖动
查看>>
C++ 内存对齐
查看>>
责任链模式
查看>>
Android 仿携程活动列表边框布局
查看>>
九大排序算法再总结
查看>>
Java泛型
查看>>
unity的sprite添加点击事件
查看>>
Pascal's Triangle II
查看>>
yocto系统介绍
查看>>
vim退出后终端保留 退出前的内容
查看>>
Android 实现ActionBar定制
查看>>