您的位置:首页 > 其它

22-带抽象方法的枚举

2013-07-14 01:38 225 查看
package demo;

import org.junit.Test;
//带抽象方法的枚举
public class DemoEnum {

@Test
public void Test() {
print(Grade.A);
}

public void print(Grade g) {
//String value = g.getValue();
String value = g.localeValue();
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();
* public static final Grade E=new Grade();
*
* }
*
*
*/
enum Grade {
A("100-90")
{
public String localeValue(){
return "优";
}
}
, B("89-80")
{
public String localeValue(){
return "良";
}
}
, C("79-70")
{
public String localeValue(){
return "一般";
}
}
, D("69-60")
{
public String localeValue(){
return "差";
}
}
, E("59-0")
{
public String localeValue(){
return "不及格";
}
};

private String value;

private Grade(String value) {
this.value = value;
}

public String getValue() {
return this.value;
}
public abstract String localeValue();
}
}

 

枚举的构造方法必须是私有的,因为如果公有的话,就可以重新实例化对象。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: