首先在java中枚举是一种基本数据类型,使用情况是在定义了一组常数,一个变量可能有几种调用,此时用枚举。
分享一个案例:
package com.java.enumeriation;
import org.junit.Test;
public class Demo1 {
@Test
public void test(){
show(Grade.B);
}
@Test
public void test2(){
System.out.println(Grade.C.name());
System.out.println(Grade.C.ordinal());
String str = "grade";
Grade g = Grade.valueOf(str);
System.out.println(g);
Grade g1[] = Grade.values();
for(Grade grade : g1){
System.out.println(grade);
}
}
public void show(Grade g){
System.out.println(g.getValue());
g.methodOfChinese();
//得到枚举类中的全部对象数据
/*Grade g1[] = Grade.values();
for(Grade grade : g1){
System.out.println(grade);
}*/
//Grade g1= Grade.valueOf("exam");
Grade grade[] = Grade.values();
for(Grade g2 : grade){
System.out.println(g2);
}
}
}
enum Grade{
A("100-90") {
@Override
public void methodOfChinese() {
// TODO Auto-generated method stub
System.out.println("优");
}
},B("89-80") {
@Override
public void methodOfChinese() {
// TODO Auto-generated method stub
System.out.println("良");
}
},C("79-70") {
@Override
public void methodOfChinese() {
// TODO Auto-generated method stub
System.out.println("一般");
}
},D("69-60") {
@Override
public void methodOfChinese() {
// TODO Auto-generated method stub
System.out.println("差");
}
},E("59-00") {
@Override
public void methodOfChinese() {
// TODO Auto-generated method stub
System.out.println("不及格");
}
};
private String value;
public String getValue() {
return value;
}
private Grade(String value){
this.value = value;
}
public abstract void methodOfChinese();
}
enum是一个类型,中有a,b,c,d,e五个对象,由构造函数传入一个String字符串,都复写了枚举中的抽象方法。show方法旨在显示枚举中对象的名字还有它实现的抽象方法。
程序运行结果:
89-80
良
A
B
C
D
E
C
2