目录
1、Object()类的 toString()
Java默认的toString方法来自Object类
在Java中每个类都直接或者间接继承
Object
类,toString()
方法同样是来自于Object
类
在没有重写toString
的前提下,每次执行System.out.println(对象引用)
,这个方法就会默认调用一个继承来自Object类型对象的toString方法。
public class Object {
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
}
一个对象,则直接打印该对象的hash码(类似于@15dc2556),它的值大概就是等于getClass().getName+'@'+Integer.toHexString(hashCode())
,
2、重写toString()方法意义
重写
toString()
可以理解为是对对象打印输出时候的一种格式化。这样符合业务逻辑,显示结果人性化。
基本数据类型都重写toString() 方法
public final class Integer extends Number implements Comparable<Integer> {
public String toString() {
return toString(value);
}
public static String toString(int i) {
if (i == Integer.MIN_VALUE)
return "-2147483648";
int size = (i < 0) ? stringSize(-i) + 1 : stringSize(i);
char[] buf = new char[size];
getChars(i, size, buf);
return new String(buf, true);
}
}
3、总结
1、没有重写toString,每执行System.out.print(Object o)会默认调用Object的toString()方法,情况如下
2、重写toString()
,每执行System.out.println()
会调用重写的toString()
方法,情况则会根据重写的方法打印输出成自己想得到的格式