print打印对象
2019-07-24 本文已影响0人
G_uest
api文档中是这样定义的
public void print(Object obj)打印对象。
按照平台的默认字符串编码将 String.valueOf(Object) 方法生成的字符串转换为字节,并完全以 write(int) 方法的方式写入这些字节。
另请参见:Object.toString()
Object.toString()
public String toString()返回该对象的字符串表示。
通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。
Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:
getClass().getName() + '@' + Integer.toHexString(hashCode())
结论
如果定义类没有重写 toString() 方法,
print(object obj)
默认输出,object类的toString()方法返回值包名.类名@对象哈希值
。
如果定义类重写了 toString() 方法,输出为子类重写的 toString() 方法返回值。
测试一
package base;
public class test {
public static void main(String[] args) {
A a = new A();
System.out.println(a);
}
}
class A {
@Override
public String toString() {
return "this is A's toString";
}
}
输出结果
this is A's toString
测试二
package base;
public class test {
public static void main(String[] args) {
A a = new A();
System.out.println(a);
}
}
class A {
}
输出结果
base.A@15db9742