有关Enum枚举问题
------解决方案--------------------第一个输出中p并不在堆中分配,它有一个具体的值,那就是MAN,所以输出MAN。
第二个是一个对象,它在堆内存中分配,用System.out.println(p1)时,就是调用object类的toString()方法,所以会出现cn.it.pag.P@10948cf;如果有P类中重写了toString(),你怎么写,它就怎么输出。
------解决方案--------------------第一个输出调用的是Person的toString,第二个调用的是Object的toString。
Person.MAN是Person类型的对象。
------解决方案--------------------
p是Person类型的对象,输出“MAN”是因为调用了java.lang.Enum类的toString()方法(enum关键字声明的枚举类都继承了java.lang.Enum),具体可以查看java.lang.Enum的toString()方法