1带构造函数的,字段,方法的枚举
package cn.example; import org.junit.Test; public class Demo { @Test public void test(){ ptint(Grade.B); } private void ptint(Grade b) { // TODO Auto-generated method stub System.out.println(b.getvalue()); } } enum Grade{ A("100-80"),B("79-60"),C("59-0"); private String value; private Grade(String value){ this.value=value; } public String getvalue(){ return value; }
输出:79-60
2.带抽象方法的枚举
enum Grade{ A("100-80"){public String getcnvalue(){return "优秀";}} ,B("79-60"){public String getcnvalue(){return "良好";}}, C("59-0"){public String getcnvalue(){return "不合格";}}; private String value; private Grade(String value){ this.value=value; } public String getvalue(){ return value; } public abstract String getcnvalue(); }
3
枚举类具有如下特性:
1.枚举类也是一种特殊形式的Java类。
2.枚举类中声明的每一个枚举值代表枚举类的一个实例对象。A,B,C,D
3.与java中的普通类一样,在声明枚举类时,也可以声明属性、方法和构造函数,但枚举类的构造函数必须为私有的(private这点不难理解)。为什么?防止其他类初始化对象 4.枚举类也可以实现接口、或继承抽象类。
5.JDK5中扩展了swith语句,它除了可以接收int, byte, char, short外,还可以接收一个枚举类型。 6.若枚举类只有一个枚举值,则可以当作单态设计模式使用。
7.Java中声明的枚举类,均是java.lang.Enum类的孩子,它继承了Enum类的所有方法。