package cn.itcast.enumeration;
import org.junit.Test;
publicclass Demo1 {
@Test
publicvoidtest() {
print(Grade.B);
}
publicvoidprint(Grade g) {
System.out.println(g.getValue());
}
}
/*
* class Grade {
* private Grade() { }
*
* public static final Grade A = new Grade();
* public static final Grade B = new Grade();
* public static final Grade C = new Grade();
* public static final Grade D = new Grade();
* public static final Grade E = new Grade();
* }
* 上述就等价于enum Grade{A,B,C,D,E}
*/enum Grade {
// 该类只有有参构造函数,所以不同于上述,必须在构造时传入String类型
A("90-100"), B("80-89"), C("70-79"), D("60-69"), E("0-59");
private String value;// 封装每个对象的分数privateGrade(String value) {
this.value = value;
}
public String getValue() {
returnthis.value;
}
}
2、Junit运行test函数结果:
二、枚举的抽象方法示例
1、代码:
package cn.itcast.enumeration2;
import org.junit.Test;
publicclass Demo1 {
@Test
publicvoidtest() {
print(Grade.B);
}
publicvoidprint(Grade g) {
System.out.println(g.localValue()+"---"+g.getValue());
}
}
/*
* class Grade { private Grade() { }
*
* public static final Grade A = new Grade(); public static final Grade B = new
* Grade(); public static final Grade C = new Grade(); public static final Grade
* D = new Grade(); public static final Grade E = new Grade(); } 上述就等价于enum
* Grade{A,B,C,D,E}
*/// 带抽象方法的枚举enum Grade {
// 该类只有有参构造函数,所以不同于上述,必须在构造时传入String类型
A("90-100") {
public String localValue() {
return"优";
}
},
B("80-89") {
public String localValue() {
return"良";
}
},
C("70-79") {
public String localValue() {
return"一般";
}
},
D("60-69") {
public String localValue() {
return"差";
}
},
E("0-59") {
public String localValue() {
return"不及格";
}
};
private String value;// 封装每个对象的分数privateGrade(String value) {
this.value = value;
}
public String getValue() {
returnthis.value;
}
publicabstract String localValue();
}