开发工具与关键技术: MyEclipse 10、Java语法
作者:邓婵
撰写时间:2019年 08月01日
枚举类型用于声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为枚举类型。枚举是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内。常使用的地方是当我们要从另一个函数得到一个值,但是这个值只能够在一个范围内的,此时我们就可以使用枚举来定义这个范围,限制另外一个函数能够传递进来的值,但只能够是枚举类型里面的元素,没有在枚举类型里面的元素是不可以使用的。
以往我们设置常量通常都是放在接口中,这样就可以直接使用了,但因为在接口中定义常量,该常量的修饰符为final与static,所以该常量是不可以被修改的。以下就是在接口中定义常量的相关代码:
枚举类型出现后可以把相关的常量分组到一个枚举类型里,逐渐地取代了上面的那种定义常量的方式,下面我们来看看使用枚举类型定义常量:
public enum Constants {
Constants_A,
Constants_B
}
其实可以将一个枚举类型看作是一个类,因为所有的枚举都继承自java.lang.Enum类,当一个定义一个枚举类型时,每一个枚举类型成员都可以看作是枚举类型的一个实例,而这些枚举类型成员都会默认被final、public、static所修饰,所以当使用枚举类型成员是可直接使用枚举类型名称调用枚举类型成员。但是由于在Java中 不支持多继承,所以枚举对象就不能再继承其他类。
由于枚举类型对象继承与java.lang.Enum类,所以该类中一些操作枚举类型的方法都可以应用到枚举类型中,下面列举了一些枚举类型中常用的方法:
下面我们看看如何使用枚举类型中的valueof()与compareTo()方法,相关代码及结果如图下所示:
说明:调用compareTo()方法返回的结果当中正值代表方法中参数在调用该方法的枚举对象位置之前,0代表两个互相比较的枚举成员的位置相同,负值代表方法中参数在调用该方法的枚举对象位置之后。
下面是一个使用toString()方法覆盖枚举的例子,相关代码可参考图下: