定义一个枚举类
public enum WeekDay {
SUN,MON(2),TUE,WEN(3,"5"),THR,FRI,SAT; WeekDay() {System.out.println("one");}; WeekDay(int day) {System.out.println("two");} WeekDay(int day,String str) {System.out.println("three");} }
public class MainTest { public static void main(String[] args) { // TODO Auto-generated method stub WeekDay weekday= WeekDay.MON; WeekDay weekday2= WeekDay.WEN; } }
这里运行main方法会打印出:
one two one three one one one
WeekDay中定义的7个枚举常量之间使用“,”分割开来。这些常量默认都是“public static final”的,这也是为什么枚举常量采用大写字母来命名的原因。而且每一个常量都是枚举类型WeekDay的一个实例。 只要你用到了枚举类,枚举类中的静态变量都会被初始化,在初始化的过程中,枚举常量的次序是按照声明的顺序安排的。第一个枚举常量的次序是0,依此累加。所以说初始化的构成中调用了7个构造方法(有参的和无参的),产生了7个WeekDay的实例。
结果只打印一次,说明第二次已经不用再创造实例了