今天刚看完高新技术的15集,是张老师讲解的关于枚举的例子有点小小的疑问:
public class Enumtest {
/**
* @param args
*/
public static void main(String[] args) {
WeekDay weekday= WeekDay.MON;
}
public enum WeekDay
{
SUN,MON(2),TUE,WEN,THR,FRI,SAT;
WeekDay(){System.out.println("===>first");};
WeekDay(int day)
{System.out.println("===>second");}
}
}
这个是我仿造视频里写出来的代码,输出结果如下:
===>first
===>second
===>first
===>first
===>first
===>first
===>first
问题就是在main函数里只声明了一个WeekDay对象,却调用了6次枚举的构造函数,而且不论main函数里声明的是星期几,程序都是从SUN按顺序一直运行到SAT。我可不可以理解为
WeekDay weekday= WeekDay.MON;
在运行过程中从WeekDay里发现了七个成员,然后每个成员调用了一次构造函数也就是new了7个对象! |