java toString()方法的使用和详解

1.toString()方法
toString()方法在Object类里定义的,其返回值类型为String类型,返回类名和它的引用地址
在进行String类与其他类型的连接操作时,自动调用toString()方法,demo如下:

实际应用中,可以根据需要在用户自定义类型中重写toString()方法,如Stirng类重写了toString()方法,返回字符串的值,dome如下

  1. 通过java.lang.Object类的toString()定义来看实际使用中会出现什么情况?
    这是jdk里面的源码
    public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }
    2.在实际使用会出现什么情况

Person p1 = new Person();
System.out.println(p1.toString());//TestEquals.Person@15db9742
System.out.println(p1);//TestEquals.Person@15db9742 因为输出的时候回默认调用Objec类toString()方法

当我们打印一个对象的引用时,实际是默认调用这个对象的toString()方法
当打印的对象所在类没有重写Object中的toString()方法时,默认调用的是Object类中toString()方法。
返回此对象所在的类及对应的堆空间对象实体的首地址值
当我们打印对象所 在类重写了toString(),调用的就是已经重写了的toString()方法,一般重写是将类对象的属性信息返回。
//手动实现
public String toString(){
return " Person:name=" + name +" age=" + age;
}

在java中,所有对象都有toString()这个方法,因为它是Object里面已经有了的方法,而所有类都是继承Object,所以“所有对象都有这个方法” 。它通常只是为了方便输出,比如System.out.println(xx),括号里面的“xx”如果不是String类型的话,就自动调用xx的toString()方法。总而言之,它只是sun公司开发java的时候为了方便所有类的字符串操作而特意加入的一个方法

例子1:
public class A{
public String toString(){return "this is A";}
}
如果某个方法里面有如下句子:
A obj=new A();
System.out.println(obj);
会得到输出:this is A

例子2:
public class A{
public String getString(){return "this is A";}//toString改个名字试试看
}
A obj=new A();
System.out.println(obj); //隐式调用toString()函数
//因为没用自定义toString()函数的返回值,所以会得到输出:xxxx@xxxxxxx的类名加地址形式 ;
System.out.println(obj.getString()); //显式调用getString()函数,会得到输出:this is A

所以,toString的好处是在碰到“println”之类的输出方法时会自动调用,不用显式打出来。

在Java中toString方法得以广泛使用还在于:只要用+操作符将对象与其他字符串连接,就可以让编译器自动调用该对象的toString方法

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值