Java中的每个枚举都是java.lang.Enum的final子类,枚举类中的每个枚举常量都是该枚举类的一个实例。虚拟机载入枚举类时生成该枚举类的所有实例。定义枚举常量时,可以重写枚举类的成员方法及成员变量,重写的成员变量的作用域仅限于定义改枚举常量的方法块内部。
public enum Test1 {
A("a"){
private int n = 200;
public void say(){
System.out.println(n);//此处n=200, A.n=100
}
},B("B"),C("c");
public static void main(String...s){
A.say();
System.out.println(Test1.A.n);
}
Test1(String s){
System.out.println("This is Test1's constructor--!"+s);
}
public void say(){
System.out.println("This is Test1!");
}
public int n=100;
}
输出:
This is Test1's constructor--!a
This is Test1's constructor--!B
This is Test1's constructor--!c
200
100