各位大鸟,小弟在今天做枚举类的构造函数调用的测试的时候遇到了下面的疑惑:
小弟没有弄明白,为什么枚举类对象创建的时候,里面所有的元素的构造方法都调用了?
public static void main(String[] args) {
//枚举类的构造方法调用测试
//我们想知道在创建枚举类的对象的时候是调用的哪个构造方法
// WeekDay weekday3=WeekDay.FIR;
// System.out.println(weekday3);
WeekDay weekMon=WeekDay.MON;
WeekDay weekThu=WeekDay.THU;
System.out.println(weekMon);
System.out.println(weekThu);
}
// 为了代码的严谨我们使用内部类的形式创建枚举类
public enum WeekDay {
/**
* 枚举:
* 枚举类中的每一个元素都是一个对象
* 枚举类中只能存放对象类型的数据。
* 不能存放基本数据类型
* 那么我们该如何枚举类中的有参的构造方法了?
* 我们可以在枚举元素后面加()来确定对象在创建的时候所调用的构造方法
*/
MON(1), THU(), WED, THI, FIR, SAT, SUN;
//枚举类的构造函数的练习
//枚举中所有的元素(方法,构造函数,和其它的信息)必须要放在元素表之后,
//元素表之后是可以不用写;号的。如果元素表;就一定要写
//枚举类中的构造函数是私有的
private WeekDay(){
System.out.println("我是空参的构造方法");
}
private WeekDay(int day){
System.out.println("我是有参的构造方法");
}
}
请各位高手帮忙指点一下,小弟不胜感激。
还有请高手指点一下怎么修改自己发的帖子,这种修改是如果内容没有发好,想再修改一下。 |