public enum WeekDay {
SUN(),MON(1),TUS(2),WES(3),FOU("星期四"),FRI("星期五"),STA("星期六");
/*
*构造函数必须是私有的,默认的,不能是public或者protecte
*必须在成员feild的后面
*field后面必须加分号
*/
private WeekDay(){
System.out.println("无参的枚举构造方法");
};
WeekDay(int i){
System.out.println("int参数的枚举构造方法"+i);
}
private WeekDay(String str){
System.out.println("String参数的枚举构造方法"+str);
}
}
public class EnumTest {
public static void main(String[] args) {
WeekDay wd=WeekDay.SUN;
}
}
为什么我没有写打印语句,却在控制台出现了如下打印语句,求高人指点。
无参的枚举构造方法
int参数的枚举构造方法1
int参数的枚举构造方法2
int参数的枚举构造方法3
String参数的枚举构造方法星期四
String参数的枚举构造方法星期五
String参数的枚举构造方法星期六
我的理解是一旦枚举被调用,它里面的field被初始化,即构造方法被初始化,所以打印出了这些语句。
如果你有更深层的解答,或者更好的答案,求指教啊。
|