toString

Object类中toString()的使用:

当我们输出对象的引用时,实际上调用的是该对象的toString()方法。 为什么会去调用该对象的toString()方法呢? 这就需要看源码了!


System.out.println(cust.toString());
System.out.println(cust);

public void println(Object x) {
        String s = String.valueOf(x);
        synchronized (this) {
            print(s);
            newLine();
        }
    }

 public static String valueOf(Object obj) {
        return (obj == null) ? "null" : obj.toString();  //在这里调用了该对象的toString()方法
    }

Object类中的toString()方法

public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }

如果自定义类不重写toString()的话,调用的就是Object类中的toString()方法,输出的就是类名和地址

但是我们并不满足,我们调用toString(),是想要输出 类的“实体内容”  并不想要输出地址;这时就需要我们去重写toString()方法了

@Override
    public String toString() {
        return "Customer{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

可以自动生成!

 

posted @ 2022-03-28 16:05  陈浩威  阅读(148)  评论(0)    收藏  举报