枚举
枚举中的方法和属性是服务于枚举项的,不是服务于枚举名的。和类有区别的
public enum MyEnum{
ONE,TWO,THREE,FOUR;
}
对enum中的项赋值
public enum MyEnum{
ONE,TWO,THREE,FOUR;
private String value;
public void setValue(String value){
switch(this){
case ONE:
if(value.equals("1")){
this.value=value;
}else{
System.out.println("只能赋值为1");
return ;
}
//后面的省略。。。
}
}
}
public Class Main(){
public void setEnum(){
MyEnum me=MyEnum.valueOf(MyEnum.class , "ONE"); //获取枚举项 MyEnum.ONE
me.setValue("1"); //为枚举项赋值 MyEnum.ONE.setValue("1");
}
}
构造赋值:
public enum MyEnum{
MALE("男"),FEMALE("女"); //枚举项类似对象,不过只有一个属性值
private String name; //枚举项共用 name 属性
private MyEnum(String name){ //enum无法实例化,只能用 private修饰[默认] ,所以这里的枚举值是固定的,无法修改
this.name=name;
}
private String getName(){
return this.name;
}
}
接口实现:
public interface MyEnumInterface{
void info();
}
public Enum MyEnum implements MyEnumInterface{
MALE{
public void info(){
System.out.println(“单独服务于 MALE”);
}
},FEMALE{
public void info(){
System.out.println(“单独服务于 FEMALE”);
}
};
@Override
public void info(){
System.out.println("这是直接服务于 MALE & FEMALE ,不是直接服务于 MyEnum");
}
}
MyEnum.MALE.info();