黑马程序员技术交流社区
标题:
求教有关枚举的问题
[打印本页]
作者:
史卜坤
时间:
2012-7-11 15:13
标题:
求教有关枚举的问题
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-7-11 15:29
System.out.println()是自动调用toString方法的
作者:
黑马振鹏
时间:
2012-7-11 15:30
枚举内部实现了toString()
作者:
孙新强
时间:
2012-7-11 15:34
public String toString(){
if(this==SUN){
return "SUN";
}else{
return "MON";
}
}
}
这个是对Object toString方法的覆盖,而所有类都是继承Object,所以“所有对象都有这个方法”
它通常只是为了方便输出,比如System.out.println(xx),括号里面的“xx”如果不是String类型的话,就自动调用xx的toString()方法
总而言之,它只是sun公司开发java的时候为了方便所有类的字符串操作而特意加入的一个方法
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2