关于Object类中的toString()方法
1、源代码长什么样?
public String toString() {
return this.getClass().getName() + "@" + Integer.toHexString(hashCode());
}
- 源代码上toString()方法的默认实现是:
- 类名@对象的内存地址转换为十六进制的形式
2、SUN公司设计toString()方法的目的是什么?
- toString()方法的作用是什么?
- toString()方法的设计目的是:通过调用这个方法可以将一个“java对象”转换成“字符串表示形式”
3、其实SUN公司开发java语言的时候,建议所有的子类都去重写toString()方法。
- toString()方法应该是一个简洁的、详实的、易阅读的.
示例代码:
public class ObjectTest01{
public static void main(String[] args){
//创建时间对象
MyTime m = new MyTime(2022,8,14);
// 一个日期对象转换成字符串形式的话,我可能还是希望能看到具体的日期信息。
String t = m.toString();
//MyTime类重写toString()方法之前
//System.out.println(t); // MyTime@28a418fc
System.out.println(t);//2022年8月14日
System.out.println(m.toString());//2022年8月14日
// 注意:输出引用的时候,会自动调用该引用的toString()方法。
System.out.println(m);//2022年8月14日
}
}
class MyTime{
private int year;
private int month;
private 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 + "日";
}
}