Java中toString方法

tostring方法默认返回:全类名(包名+类名)+@+哈希值的十六进制

源码:

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

观察以下代码查看效果:

public class Test {
    public static void main(String[] args) {
        A a=new A("小钻风",5000,600);
        System.out.println(a.toString());
    }
}
class A{
    private String name;
    private int age;
    private int sal;
    public A(String name,int age,int sal){
        this.name=name;
        this.age=age;
        this.sal=sal;
    }
}

 但是我们一般情况下会将tostring方法重写,实现我们不同的需求,下面看一下默认的idea的重写是什么状况:

public class Test {
    public static void main(String[] args) {
        A a=new A("小钻风",5000,600);
        System.out.println(a.toString());
    }
}
class A{
    private String name;
    private int age;
    private int sal;
    public A(String name,int age,int sal){
        this.name=name;
        this.age=age;
        this.sal=sal;
    }

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

 注意:当我们使用一个输出一个对象的时候,tostring方法会被默认调用。也就是说下面的两句话是等价的,即输出对象a的时候,就是运行了a.tostring

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


版权声明:本文为qq_58510930原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。