返回工具的字符串表示形式,总的来说,toString()方法返回一个字符串,“以文本办法表示”这个工具。其结果该当是一个简洁,但详确的代表性,是一个随意马虎阅读的。建议所有子类都重写此方法。
上面是oracle公司给出的官方阐明,并特意建议我们要重写此方法,接下来我们看看toString()的源码:
public String toString() {
return this.getClass().getName() + "@" + Integer.toHexString(hashCode());
}
源代码上toString()方法的默认实现是:类名@工具的内存地址转换为十六进制的形式
SUN公司设计toString()方法的目的是:通过调用这个方法可以将一个“java工具”转换成“字符串表示形式”
以下是代码:
public class Test01{
public static void main(String[] args){
MyTime t1 = new MyTime(1970, 1, 1);
// 一个日期工具转换成字符串形式的话,我可能还是希望能看到详细的日期信息。
String s1 = t1.toString();
//MyTime类重写toString()方法之前
//System.out.println(s1); // MyTime@28a418fc
//MyTime类重写toString()方法之后
System.out.println(s1); // 1970年1月1日
//System.out.println(t1.toString()); //1970年1月1日
// 把稳:输出引用的时候,会自动调用该引用的toString()方法。
System.out.println(t1);
}
}
class MyTime{
int year;
int month;
int day;
public MyTime(){
}
public MyTime(int year, int month, int day){
this.year = year;
this.month = month;
this.day = day;
}
// 重写toString()方法
// 这个toString()方法怎么重写呢?
// 越简洁越好,可读性越强越好。
// 向简洁的、详确的、易阅读的方向发展
public String toString(){
//return this.year + "年" + this.month + "月" + this.day + "日";
return this.year + "/" + this.month + "/" + this.day;
}
}
小弟鄙人,有不敷或者有争议的望各路大神示正!
!
!