Week day1=Week.SAT创建一个对象day1.内存中会把Week加载进来。再看枚举中定义的方法printStudy()
这个意思是把Week枚举对应的study进行打印,相当于把里面定义的MON("java01"),TUE("java02"),WED("java03"),THU("java04"),FRI("java05"),SAT("java06"),SUN("rest");
对应的study都输出。
增加两行代码分析原因。
enum Week {
MON("java01"),TUE("java02"),WED("java03"),
THU("java04"),FRI("java05"),SAT("java06"),SUN("rest");
String study;
public void printStudy(){
System.out.println(this.study+"++"+this.getClass()); }
Week(String study){
this.study=study;
this.printStudy();
}
}
public class TestWeek {
public static void main(String[] args) {
Week day1=Week.SAT;
System.out.println("------");
Week day2=Week.SUN;
System.out.println("------");
System.out.println(day1);
//在这里我只调用了一个枚举的实例对象,为什么却把所有的枚举对象的属性值都给打印出来了呀?
}
}
我在主函数中新增了实例,但是并不会再答应一遍属性,说明肯定是第一次创建对象的时候就加载到内存中了。
打印结果:
java01++class testing2.Week
java02++class testing2.Week
java03++class testing2.Week
java04++class testing2.Week
java05++class testing2.Week
java06++class testing2.Week
rest++class testing2.Week
------
------
SAT
|