黑马程序员技术交流社区
标题:
toString()是怎么被自动调用的?
[打印本页]
作者:
闫江龙
时间:
2011-12-31 00:58
标题:
toString()是怎么被自动调用的?
本帖最后由 闫江龙 于 2011-12-31 19:25 编辑
public abstract class WeekDay1 {
private WeekDay1(){}
public final static WeekDay1 SUN = new WeekDay1(){
public WeekDay1 nextDay() {
return MON;
}
};
public final static WeekDay1 MON = new WeekDay1(){
public WeekDay1 nextDay() {
return SUN;
}
};
public abstract WeekDay1 nextDay();
public String toString(){
return this==SUN?"SUN":"MON";
}
}
public class EnumTest {
public static void main(String[] args) {
WeekDay1 weekDay = WeekDay1.MON;
System.out.println(weekDay.nextDay());//
weekDay.nextDay()得到的是对象 但打印的时候却打印出的字符串,调用tostring()方法的原理是什么???都有什么情况会调用他?如果这样写呢weekDay.nextDay().tostring()
}
}
作者:
闫江龙
时间:
2011-12-31 09:41
没人理啊 唉
作者:
沈样
时间:
2011-12-31 09:57
返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。 这个api上写的,说明的打印对象的字符串形式,但是一般都会重写这个类,因为通常System.out.println()对象的输出格式不是我们想要的,就可以通过改写toString().只要是输出格式的问题
作者:
颜宗茂
时间:
2011-12-31 10:26
输出打印的时候就会调用自动调用该对象的tostring()方法,System.out.println()时就会调用,weekDay.nextDay().tostring() 是一样的效果,自己定义的类如果想看到自己想要的效果那么就要自己定义toString方法,否则就会调用Object类的toString方法。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2