枚举类型是从jdk1.5版本才出现的新特性。
1.枚举类型 关键字为:enum 枚举也是一种类,它也可以继承一个类或实现一个接口。
例:enum Demo{
A,B,C,D,E;
}
这段代码的意思等同于下面的代码:
class Demo
{
public static fianl Dmeo A= new Demo();
public static fianl Dmeo B= new Demo();
public static fianl Dmeo C= new Demo();
public static fianl Dmeo D= new Demo();
public static fianl Dmeo E= new Demo();
}
从这段代码可以看出在枚举中的A,B,C,D,E 这五人字母代表的就是枚举类Demo的五个对象
2、下面介绍一些枚举的其他格式
a.带有成员变量和成员方法的枚举
enum Dmeo
{
A("100-90"),B("89-80"),C("79-70"),D("69-60"),E("59-0");
String value;
private Demo(String value){
this.value=value;
}
public String getValue()
{
return value;
}
}
System.out.println(Demo.A.getValue());
结果:100-90
b.带有抽象方法的枚举类
enum MyEnumDemo
{ //带有抽象方法的枚举类型,在new每个对象时,都必须对抽象进行实现
A("100-90"){
public String localValue(){
return "优";
}
}
,B("89-80"){
public String localValue(){
return "良";
}
}
,C("79-70"){
public String localValue(){
return "一般";
}
}
,D("69-60"){
public String localValue(){
return "差";
}
}
,E("59-0"){
public String localValue(){
return "不及格";
}
};
String value;
private MyEnumDemo(String value){
this.value=value;
}
public String getValue()
{
return value;
}
public abstract String localValue();
}
System.out.println(MyEnumDemo.A.localValue());
结果:优
c.枚举类的一些常用的方法
String str="B";
MyEnumDemo med=MyEnumDemo.valueOf(str);//将字符串转化成枚举类型;注意str所代表的字符串必须是MyEnumDemo中的那5个对象中的一个(A,B,C,D,E),否则报错
System.out.println(med.name());//这个枚举对象的名字
System.out.println(med.ordinal());//这个枚举对象在枚举类中是第几个对象
MyEnumDemo[]myenum=MyEnumDemo.values();//返回枚举类中所有的对象
for(MyEnumDemo m:myenum)
{
System.out.println(m);
}