为什么我们写User类时总是要重写toString()方法?

今天重新拿出来以前的demo来练手,突然回顾到为啥我们的User类里总是要重写toString()方法的这个问题,这个问题貌似是我们几年前刚学javase时候的事情。

一:java默认的toString方法来自Object 类
在Java中每个类都直接或者间接继承Object 类,toString() 方法同样来自于Object 类。

在没有重写tostring的前提下,每次执行System.out.println() 这个方法默认就会调用一个继承自Object 类型对象的toString 方法。

二:重写toString()方法的意义所在
简单一句话就是重写toString() 可以理解为是对对象在打印输出时候的一种格式化。这样做符合业务逻辑,显示结果人性化。

object类里的toString只是把字符串的直接打印,数字的要转化成字符再打印,而对象,则直接打印该对象的hash码。

如果我们呢没有重写tostring ,每执行System.out.println() 会默认调用Object 的toString 方法,情况如下:
如果打印的东西本身是:
字符串---------直接输出字符串
数字------------转为字符串再输出
对象-------------hash码
重写tostring,每执行System.out.println() 会调用重写的toString 方法,情况则会根据重写的方法打印输出成自己想得到的格式。

发布了45 篇原创文章 · 获赞 50 · 访问量 2037

猜你喜欢

转载自blog.csdn.net/zhaoyi666/article/details/105398329