黑马程序员技术交流社区
标题:
java类模拟枚举
[打印本页]
作者:
左华清
时间:
2012-2-24 14:39
标题:
java类模拟枚举
本帖最后由 左华清 于 2012-2-24 17:19 编辑
package cn.itcast.day01;
public class EnumTest1 {
public static void main(String[]args){
WeekDay2 weekday=WeekDay2.SUN;
System.out.println(weekday.nextDay());
}
}
package cn.itcast.day01;
public class WeekDay2 {
private WeekDay2(){}
public static final WeekDay2 SUN=new WeekDay2();
public static final WeekDay2 MON=new WeekDay2();
public WeekDay2 nextDay(){
if(this==SUN){
return MON;
}else{
return SUN;
}
}
public String toString(){
if(this==SUN){
return "SUN";
}else{
return "MON";
}
}
}
打印的时候没有写 WeekDay2.toString()方法怎么就打印出了"MON",
这个是怎么运行的.不明白怎么调用了toString()方法.
作者:
【专】【属】
时间:
2012-2-24 14:47
本帖最后由 【专】【属】 于 2012-2-24 14:48 编辑
System.out.println这是方法,个人感觉在其实现时,其内部就是调用对象的toString()方法。可以看一下printWriter类toString()方法的内部实现
作者:
dangfei
时间:
2012-2-24 17:09
每一个对象都有toString()方法,println的时候就自动调用了对象的toString()方法,有些东西虽然看不见,但确实再起着作用
作者:
左华清
时间:
2012-2-24 17:19
嗯,谢谢!
作者:
温昌寿
时间:
2012-2-24 18:01
上面正确的,tostring是每个类都具有的方法,当你输出的时候JVM会自动帮你执行的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2