Java之toString方法

Posted adil

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java之toString方法相关的知识,希望对你有一定的参考价值。

  在Java中所有的类都有一个共同的父类Object(默认继承,不用加extends关键字),toString方法就是Object类的一个方法,用来返回该对象的字符串表示形式(个人总结:需要把该类转换成String类型的时候就会调用该方法)

  父类Object中的toString()方法

  技术图片

  可以看到该方法返回的是"类名@hashCode值"形式的字符串

  但这并不是我们所想要的结果,我们希望这个方法返回的是该类的所有属性拼接的字符串,Object的toString方法已经不够用了,因此,我们需要重写该方法

  技术图片

  既然已经重写好了该方法,那该方法是什么时候被调用的呢?

  我们经常使用System.out.println()方法来打印一个基本类型的变量或引用变量,我们根据源代码来查看是如何运行的:

  System.out.println()通过标准输出流对象调用println()方法

  技术图片

  该方法是用于打印基本类型变量或引用变量,我们在看看prinln()方法是如何实现的?

  技术图片

  该方法被重载了,基本类型的参数直接打印出该值,我们主要关注引用类型参数是如何实现

  技术图片

  String.valueOf()方法用于返回Object参数的字符串表示形式,将该值用String类型的变量s接收,并打印出来,我们在看看valueOf()方法是怎么实现的

  技术图片

  若该引用变量不是指向空引用,则调用该引用变量所指向的对象的toString方法

  由此,我们可以判断,当System.out.println()中的参数类型是基本类型参数时,直接打印,若是引用类型时,调用该引用类型所指向的对象的toString方法,如果该子类对象不重写toString方法,则打印的是"类名@hashCode值"形式的字符串,通常建议重写toString方法

以上是关于Java之toString方法的主要内容,如果未能解决你的问题,请参考以下文章

Java之toString方法

黑马java之object类(tostring那个方法)补发

Java 对象 始终要覆盖toString

JDK源码之Integer类—toString()方法

JS之toString方法

php面向对象之__toString()