enum是java中的枚举,其实枚举是一个常量,枚举就是定义枚举类的一个实例。
定义枚举的时候,应该注意一下几个问题:
其构造方法应该是private 的,为什么呢?根据我的理解,应为枚举是个常量,枚举的意思就是有限的可以列举的几个选项,如果其构造方法可以是public的,那么就违背了枚举的初衷,所以,枚举的构造方法是private的
另外,枚举的选项都应该是枚举的第一行出现
详见示例:
package com.luzhiming.test_6_11;
/**
* @author 鲁志明 E-mail: 13688601037@139.com
* @version 创建时间:2013-6-11 下午10:50:34
*
*/
public enum MyEnum
{
ZHANGSAN(1,"zhansang"),LISI(2,"lisi"),WANGWU(3,"wangwu");
private MyEnum(int age , String name)
{
this.age = age ;
this.name = name;
}
private int age;
private String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
swith语句能够作用在byte,short,char上面,因为这些数据类型都可以隐含的转换为int类型,另外switch还可以作用在枚举常量上面。
示例:
package com.luzhiming.test_6_11;
public class Page9Number5 {
public static void useEnum(MyEnum enumType)
{
switch(enumType)
{
case LISI:
System.out.println("LISI的名字是:"+ enumType.getName());
return;
case WANGWU:
System.out.println("WANGWU的名字是:" + MyEnum.WANGWU.getName());
return;
default:
System.out.println("this is default");
return;
}
}
public static void main(String[] args) {
useEnum(MyEnum.LISI);
useEnum(MyEnum.WANGWU);
//运行 default 语句
useEnum(MyEnum.ZHANGSAN);
}
}