枚举类型ENUM的使用
来源:互联网 发布:python list生成字典 编辑:程序博客网 时间:2024/04/30 09:26
JDK 5出现的新特性,新增的enum关键字用于定义枚举类。Java中声明的枚举类,均是继承自Enum。
为什么需要枚举?
Java的一些方法在运行时,它需要的数据不能是任意的,而必须是一定范围内的值,此类问题在JDK5以前的程序猿们都采用自定义带有枚举功能的类解决,Java5新特性出现后可以直接使用枚举予以解决。
枚举类具有以下特性:
① 枚举类是一种特殊形式的java类;
② 枚举类中声明的每一个枚举值代表枚举类的一个实例对象;
③ 与java中的普通类一样,在声明枚举类时,也可以声明属性、方法和构造函数,但是构造函数必须是私有的。(为避免还可以使用该方法的构造函数创建其他对象);
④ 枚举类也可以实现接口或者继承抽象类;
⑤ JDK 5 中扩展的switch语句,它除了可以接受int、short、byte、char外,还可以接受一个枚举类型;
⑥ 若枚举类只有一个枚举值,则可以当作单态设计模式(内存始终只有一个该类的对象)使用;
自定义带有枚举功能的类示例代码(例如学生成绩五个等级):
class Grade{private Grade(){}//Grade方法的构造函数,私有是为了限制数据不能是任意的public static final Grade A=new Grade();public static final Grade B=new Grade();public static final Grade C=new Grade();public static final Grade D=new Grade();public static final Grade E=new Grade();}一个枚举也可以有构造函数、字段和方法。例如每周都有7天,分别为MON、TUE、 WED、 THU、FRI、SAT、 SUN,我们在使用这种类型的数据时候,也可以使用枚举。示例代码:
enum WeekDay {A("MON"), B("TUE"), C("WED"), D("THU"), E("FRI"), F("SAT"), G("SUN");private String value;<span style="white-space:pre"></span>//封装每个对象对应的字段private WeekDay(String wd) {this.value = wd;}public String getValue() {return this.value;}}特别注意的是:定义枚举类的时候构造函数必须要私有。
带抽象方法的枚举示例代码:
enum WeekDay {A("MON") {public String localValue() {return "周一";}},B("TUE") {public String localValue() {return "周二";}},C("WED") {public String localValue() {return "周三";}},D("THU") {public String localValue() {return "周四";}},E("FRI") {public String localValue() {return "周五";}},F("SAT") {public String localValue() {return "周六";}},G("SUN") {public String localValue() {return "周日";}};private String value;private WeekDay(String value) {this.value = value;}public String getValue() {return this.value;}public abstract String localValue();}注意:在定义枚举时,定义了抽象方法时,需要在创建每个枚举对象时候实现该抽象方法;
由于枚举类继承自Enum,所以其继承Enum的所有方法,枚举类中的常用方法有:
name();返回次枚举常量的名称,在其枚举声明中对其进行声明;
ordinal();返回枚举常量的序数(它在枚举声明中的位置,其中初始常量为0);
valueof(class enumClass,String name);返回带指定名称的指定枚举类型的枚举常量;
values();用于遍历枚举的所有枚举值。
1 0
- Enum枚举类型的使用
- enum枚举类型的使用
- 枚举类型ENUM的使用
- enum枚举类型的使用
- Enum枚举类型的使用
- 枚举类型-enum使用
- 枚举类型enum 使用
- enum枚举类型使用
- enum枚举类型使用
- java枚举类型enum的使用
- Java枚举类型enum的使用原理
- java枚举类型enum的使用
- java 枚举类型enum 的使用
- java枚举类型enum的使用
- java枚举类型enum的使用
- java 枚举类型enum 的使用
- java枚举类型enum的使用
- java枚举类型enum的使用
- POJ -- 2253 Frogger
- CodeForces #293 div.2 题解
- [转] 以超级管理员身份运行bat
- POJ -- 1511 Invitation Cards
- Congratulations! Oracle DBA 10g Certified Master Practicum Results
- 枚举类型ENUM的使用
- B - 畅通工程
- tcp和udp的区别
- 沉淀下来才是收获
- Face Detection and Tracking Using the KLT Algorithm
- hadoop集群中的日志文件
- 初次接触FTPclient
- c- Ubiquitous Religions
- 移动共享开发(二)各平台SSO(免登录)配置 微信和微信朋友圈、QQ、QQ空间、新浪微博、腾讯微博、人人