java枚举类型

作者: zhaochenxi 分类: Java 发布时间: 2015-07-03 20:18

Java的枚举类型是在jdk1.5之后才出现的,它和C中的枚举类型的基本功能是一样的,但是Java为枚举添加了一些新的功能,如:构造函数,在Java的枚举中可以设置一些变量。下面写一个Java枚举的实例。

package com.zhaochenxi.enums;

public enum WeekDay {
sunday(0,"星期日","这是一个星期的第一天"),
monday(1,"星期一","这是一个星期的第二天"),
tuesday(2,"星期二","这是一个星期的第三天"),
wednesday(3,"星期三","这是一个星期的第四天"),
thusday(4,"星期四","这是一个星期的第五天"),
friday(5,"星期五","这是一个星期的第六天"),
saturday(6,"星期六","这是一个星期的第七天");

WeekDay(int num,String name,String description){
this.num=num;
this.name=name;
this.description=description;
}
private int num;
private String name;
private String description;

/**
* 根据传入的参数返回对应的枚举
* @param num
* @return
*/
public static WeekDay getWeekDay(int num){
for(WeekDay w:WeekDay.values()){
if(num==w.ordinal()){
return w;
}
}
return null;
}

public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}

}

这是一个表示week的枚举,在这个枚举中定义了星期一到星期日的枚举,在枚举中我定义了几个成员变量用来描述枚举,通过构造函数来对枚举中的成员变量id,name,description赋值。其中getWeekDay方法用于根据传入的参数返回枚举,这个函数的写法在枚举中是一个不错的东西,你可以根据你的实际情况来选择使用哪一个枚举。values()方法是用来遍历枚举的一个方法,其中有枚举的所有成员,ordinal()是用来返回枚举的枚举值的,返回值是一个整型,枚举值按照定义的顺序从0开始,注意区别我定义的枚举的Id,这个Id是用来辅助描述枚举的,一定要注意枚举的构造函数不能是public,下面是一个枚举的测试:

package com.zhaochenxi.enums;

public class Test {
public static void main(String[] args) {
//遍历枚举,返回每一个枚举的名字和枚举值,这里的枚举值不是成员变量中的ID
for (WeekDay c : WeekDay.values()) {
System.out.println(c.getName() + “—->” + c.ordinal());
}
//根据传入的参数返回枚举对象。然后获得枚举的名称。
System.out.println(WeekDay.getWeekDay(3).getName());
//输出枚举的值
System.out.println(WeekDay.monday);
System.out.println(WeekDay.thusday);
System.out.println(WeekDay.sunday);
}
}

控制台输出:

星期日—->0
星期一—->1
星期二—->2
星期三—->3
星期四—->4
星期五—->5
星期六—->6
星期三
monday
thusday
sunday

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注