Java toString要点
一、关于Object类中的tostring()方法
1. toString源代码长什么样?
public String toString(){
return getClass().getName()+"@"+Integer.toHexString(hashCode());
}
源代码上的toString方法的默认实现是:
类名@对象的内存地址转换成十六进制的形式
2. toString()的目的是什么:
通过调用这个方法可以将一个“Java对象”转换成“字符串形式”
3. 建议所有的子类重写toString()方法,它应该是一个简洁的、详实的、易阅读的方法
package Day0218.Demo01;
public class Test01 {
public static void main(String[] args) {
MyTime t = new MyTime(1999,11,17);
System.out.println(t.toString());
}
}
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;
}
public String toString(){
return this.year+"年"+this.month+"月"+this.day+"日";
}
}
以上示例重写了toString()方法,达到了易阅读的目的。
4. 注意:输出引用的时候,会自动调用引用的toString()方法!
User u1 = new User("zhangsan",addr);
System.out.println(u1);//输出引用的时候,会自动调用引用的toString()方法!
二、toString()总结
- toString()方法的默认实现是
类名@对象的内存地址转换成十六进制的形式
Day0221.Demo01.User@5cad8086
- 因此建议子类根据实际需要去重写toString()方法
3.重写toString()方法,要达到易阅读的目的。 - 输出引用会自动调用toString()方法