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);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值