枚举的使用:
枚举元素必须位于枚举类体中的最开始部分,枚举元素后要有分号与其他成员分隔。
所有枚举类都提供一个静态的values()方法(返回该枚举类所有对象组成的数组),便于遍历所有枚举对象
所有枚举类都提供一个静态的valueOf(String name)方法, 返回枚举类中对象名等于 name的对象
枚举对象后面加上{},那么该对象实际是枚举匿名内部类对象
1.使用枚举常量:
public enum Gender {
/*
* MAN==>public static final MAN = new Gender();
* WOMAN==>public static final WOMAN = new Gender();
* NONE==>public static final NONE = new Gender();
* MAN()==MAN;此时枚举的构造方法必须是无参的
* */
MAN,WOMAN,NONE;
}
public enum Gender {
/*
* static final MAN = new Gender("男"); WOMAN==>public static final WOMAN =
* new Gender("女"); NONE==>public static final NONE = new Gender("保密");
*
*/
MAN("男"), WOMAN("女"), NONE("保密");
private String name = null;
// 枚举类的构造方法的权限修饰符默认是private,默认是无参的
private Gender(String name) {
this.name = name;
}
@Override
public String toString() {
return this.name;
}
public String getName() {
return name;
}
}
2、枚举在switch中的使用,switch语句在jdk5以前只支持byte、short、int、char类型,在jdk5以后支持枚举,在jdk7支持String类型,Switch对枚举的支持
public enum Gender {
MAN,WOMAN,NONE;
@Override
public String toString() {
String str =super.toString();
switch(this){
case MAN:
str = "男";
break;
case WOMAN:
str = "女";
break;
default:
str = "保密";
}
return str;
}
}
3、枚举在接口方面的使用
public enum Singleton {
INSTANCE;
}
public enum Color implements ILvoe {
RED,GREEN,BLUE;
@Override
public void love() {
String str = super.toString();
switch(this){
case RED:
str = "红色";
break;
case GREEN:
str = "绿色";
break;
default:
str = "蓝色";
}
System.out.println(str);
}
}
public enum Color2 implements ILvoe {
RED{
public void love(){
System.out.println("红色");
}
},GREEN{
public void love(){
System.out.println("绿色");
}
},BLUE{
public void love(){
System.out.println("蓝色");
}
};
}
4、使用枚举实现单例设计模式
public enum Singleton {
INSTANCE;
}