java成长笔记

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
上一篇下一篇

猜你喜欢

热点阅读