public class meiju {
//限定只可以传A B C D E
@Test
public void test(){
print(Grade.B);
}
public void print(Grade g){//限定只可以传A B C D E
String value= g.getValue();
System.out.println(value);
}
}
//传统方法,自定义
/*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();
}*/
//如何定义枚举的构造函数、方法个字段,去封装更多的信息
enum Grade{
A("100-90"),B("89-80"),C("79-70"),D("69-60"),E("59-50");
private String value;
private Grade(String value){
this.value=value;
}
public String getValue(){
return this.value;
}
}
输出结果为89-80
//带抽象方法的枚举
package com.itcast.enumeration;
import org.junit.Test;
public class CopyOfmeiju {
//限定只可以传A B C D E
@Test
public void test(){
print(Grade1.B);
}
@Test
public void test2(){
//获取枚举的名称
System.out.println(Grade.C.name());
//获取枚举的位置
System.out.println(Grade.C.ordinal());
String str="B";
Grade1 g=Grade1.valueOf(str);
System.out.println(g);
//遍历枚举的所有值
Grade gs[]= Grade.values();
for(Grade g2:gs){
System.out.println(g2);
}
}
public void print(Grade1 g){//限定只可以传A B C D E
String value= g.localValue();
System.out.println(value);
}
}
//传统方法,自定义
/*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();
}*/
//如何定义枚举的构造函数、方法个字段,去封装更多的信息
enum Grade1{
A("100-90"){
public String localValue(){
return "优秀";
}
}
,B("89-80"){
public String localValue(){
return "良好";
}
}
,C("79-70"){
public String localValue(){
return "一般";
}
}
,D("69-60"){
public String localValue(){
return "及格";
}
}
,E("59-50"){
public String localValue(){
return "不及格";
}
};
private String value;
private Grade1(String value){
this.value=value;
}
public String getValue(){
return this.value;
}
public abstract String localValue();
}