1、枚举类也是一个类,也可以有属性,等等:
public enum SeasonEnum{
SPRING,
SUMMER,
FALL,
WINTER;
}
这个是没有其他属性的。
package com.creditharmony.adapter.testCase.test;
public class EnumTest {
public void judge(SeasonEnum s) {
switch (s) {
case SPRING:
System.out.println("春天");
break;
case SUMMER:
System.out.println("夏天");
break;
case FALL:
System.out.println("秋天");
break;
case WINTER:
System.out.println("冬天");
break;
default:
break;
}
}
public static void main(String[] args) {
for (SeasonEnum s : SeasonEnum.values()) {
System.out.println(s);
}
new EnumTest().judge(SeasonEnum.FALL);
}
}
进一步修改枚举代码:
package com.creditharmony.adapter.testCase.test;
public enum Gender {
MALE, FEMALE;
private String name;
public String getName() {
return name;
}
public void setName(String name) {
switch (this) {
case MALE:
if ("男".equals(name)) {
this.name = name;
} else {
System.out.println("参数错误,name:" + name);
return;
}
break;
case FEMALE:
if ("女".equals(name)) {
this.name = name;
} else {
System.out.println("参数错误,name:" + name);
return;
}
break;
default:
break;
}
}
}
上面的枚举中没有为各项指定初始值,而且属性可修改,其实枚举属性不应该被修改,所以应该用private final 来修饰。
public enum Gender {
MALE("男"), FEMALE("女");
// 枚举类的构造器只能用private修饰
private Gender(String name){
this.name=name;
}
private String name;
public String getName() {
return name;
}
}
public static void main(String[] args) {
System.out.println(Gender.FEMALE.getName());
}
输出结果:女。
浙公网安备 33010602011771号