不得不说,有很多java初学者写java实体类的时候,并没有真正理解重写toString() 方法,可能是口头知道也可能是跟风随带添加toString() 方法,并没有真正理解其意义,如果真要被问起来未必有十足把握回答上 中枪了咩,这篇文章旨在帮助初学者正确解读实体类重写toString() 方法。

解读一:java默认的toString方法来自Object 类

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

其实这不难理解,在没有重写tostring的前提下,每次执行System.out.println() 这个方法默认就会调用一个继承自Object 类型对象的toString 方法,这点是非常重要的基础前提!

解读二:重写toString()方法的意义所在

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

object类里的toString只是把字符串的直接打印,数字的要转化成字符再打印,而对象,则直接打印该对象的hash码(类似@15db9742 这样的东东),它的值大概就是等于getClass().getName()+’@’+Integer.toHexString(hashCode()) ,我这乔治脑袋看着都晕,hash码 这玩意是给机器看的,平凡的人类是看不懂的鸭,什么?你要挑战?你相信你就是不一样的烟火?那行,我就举个例子给你看看,你可以试着在一个实体类中…啥?你要我自己来?额…行,我来就我来…

1、编写一个叫Person的实体类

public class Person {private String name;private Integer age;public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public Person() {}public Person(String name, Integer age) {this.name = name;this.age = age;}
}

2、编写测试类

 public static void main(String[] args) {Person person = new Person();person.setAge(12);person.setName("不一样的烟火");System.out.println(person);}

3、没重写tostring()方法的测试效果

4、加上tostring()方法的测试效果

现在的开发工具基本都有自动生成tostring() 方法的快捷键,我想大家都懂~

总结

1、没有重写tostring ,每执行System.out.println() 会默认调用ObjecttoString 方法,情况如下:

2、重写tostring,每执行System.out.println() 会调用重写的toString 方法,情况则会根据重写的方法打印输出成自己想得到的格式。

3、为了养成良好习惯,建议每次编写实现类都重写一下tostring() 方法!!

【java基础】为什么重写toString()方法?相关推荐

  1. 【Java基础】重写equals方法详讲

    一.重写equals方法 [Java比较学习]重写equals方法的安全写法 1.重写equals方法的两种方式 这里提供两个比较常见的equals重写方法: ● 用instanceof实现重写equ ...

  2. java 默认tostring_【java基础】为什么重写toString()方法?

    不得不说,有很多java初学者写java实体类的时候,并没有真正理解重写toString() 方法,可能是口头知道也可能是跟风随带添加toString() 方法,并没有真正理解其意义,如果真要被问起来 ...

  3. Java基础——重写toString()方法

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

  4. [转载] JAVA面向对象之代码块 继承 方法的重写 super关键字与重写toString()方法介绍

    参考链接: 可以重写Java中的私有方法吗 JAVA面向对象之代码块与继承 代码块分类 局部代码块 作用:限制变量生命周期 书写位置:在方法中 构造代码块 开发中很少使用 书写位置:类中  方法外 调 ...

  5. [转载] java重写toString()方法

    参考链接: 在Java中重写toString() 前言: 在你兴高采烈的写完一个类,创建测试类时,创建对象,传入参数,调用对象,以为会得到参数值,但突然发现输出的是" 类名@什么东东?(其实 ...

  6. java中的tostring_java 中重写toString()方法

    toString()方法 一般出现在System.out.println(类名.toString()); toString()是一种自我描述方法 本身返回的是 getClass().getName() ...

  7. java实体类如果不重写toString方法,会如何?

    先认识一下Object Object 类的 toString 方法 返回一个字符串,该字符串由类名(对象是该类的一个实例).at 标记符"@"和此对象哈希码的无符号十六进制表示组成 ...

  8. Java Object类中toString方法的重写

    Object类中的tostring方法的: 当我们输出一个对象时,实际是输出的是这个类中的tostring方法,是一个地址值,而不是类中的属性. 一:子类没有重写Object类中的toStrinng方 ...

  9. java tostring 父类_java重写toString()方法

    toString()方法是Object类的方法,调用toString()会返回对象的描述信息. 1)为什么重写toString()方法呢? 如果不重写,直接调用Object类的toString()方法 ...

最新文章

  1. 页面上水平飞舞的图片
  2. 《分布式系统:概念与设计》一3.2 网络类型
  3. 民主湖呀,不知道是好看还是破烂
  4. MYSQ 查看 2 进制日志
  5. UNIX(进程间通信):01---Linux进程通信方式
  6. Linux系统运行Windows程序(Linux执行windows程序)
  7. python的神经网络模块接法图解_图神经网络库PyTorch geometric
  8. 321电商学院 与华中师大联手 - 2014-10-22
  9. 斑马打印机链接数据库实现自动打印
  10. Excel表格身份证号码如何一键提取性别、年龄、出生年月
  11. Jsp+Servlet飞机票预定系统(JavaWeb毕业设计源码)
  12. 忠魁互联优化:头条SEO全网搜索营销怎么做?
  13. 蓝桥杯2020年第十届C/C++省赛A组第4题-迷宫(bfs)
  14. Win8 许可证过期怎么重新激活?
  15. Java实现接口(打印机)
  16. 高德地图和百度地图数据下载
  17. 【USACO】青铜莲花池[2]
  18. InputStream读取数据
  19. python非可选参数_带plac的可选参数的默认值和非默认值 - python
  20. Python3——numpy中mean和average的区别

热门文章

  1. 汤晓鸥:人工智能在中国有点过热了,我想泼泼冷水
  2. 关于Proteus仿真闪退及Proteus上电瞬间电容初始电压设定问题解决办法总结
  3. 300多分的计算机专业大学,理科300多分能上什么大学
  4. 2005年大二下学期总结
  5. OpenCV浅记,色彩空间与提取图像色彩
  6. log4j-maven仓库地址
  7. 面向对象(基础题目:鸡生蛋)
  8. Neo4j入门学习笔记
  9. 2022最新天龙八部环境-GS环境离线版-Linux Docker TLBB+视频教程
  10. 计算机科学领域最高荣誉,莱斯大学Moshe Vardi赢得计算机科学领域的最高荣誉