先认识一下Object

  1. Object 类的 toString 方法

返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:

getClass().getName() + '@' + Integer.toHexString(hashCode())

2.  对象如果没有父类,默认继承Object。

如果没重写toString方法,则默认是Object的toString方法返回值:类名@哈希玛值;

package com.huojg.test;import java.io.Serializable;/** 为什么实体类要重写toString方法* 测试。实验开始。。。。* * * * **/
public class Test5{private String name;private String sex;private int No;public void Show(){System.out.println("这是我的展示方法!!!!");}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public int getNo() {return No;}public void setNo(int no) {this.No = no;}
}

测试类

package com.huojg.test;public class Test6 {
public static void main(String[] args) {Class<?> demo= null;try {demo=Class.forName("com.huojg.test.Test5");} catch (ClassNotFoundException e) {e.printStackTrace();}Test5 test5= new Test5();test5.setName("xiaoming");test5.setNo(001);test5.setSex("man");System.out.println(test5);
}
}

结果输出:

com.huojg.test.Test5@304e94a4

Test5添加toString方法

package com.huojg.test;import java.io.Serializable;/** 为什么实体类要重写toString方法* 测试。实验开始。。。。* * * * **/
public class Test5{private String name;private String sex;private int No;public void Show(){System.out.println("这是我的展示方法!!!!");}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public int getNo() {return No;}public void setNo(int no) {this.No = no;}@Overridepublic String toString() {return "Test5 [name=" + name + ", sex=" + sex + ", No=" + No + "]";}}

再次测试输出结果

Test5 [name=xiaoming, sex=man, No=1]

总结分析:

在类Test5中如果我们没有重写ToString方法。默认就是Object的toString方法输出格式。

如果我们在Test5中重写toString方法,那么输出格式就会按照我们定义的方式输出这个对象,因此可以这样理解:

重写toString是对对象打印输出的一种格式化。当你print一个对象是你需要这个对象在打印时展现的是什么形态你就把toString重写成你需要的返回形态。重写hashcode主要是为了规定对象之间的比较方式。如果你把对象存入hash集合,集合就会对对象的hashcode进行比较以区分两个对象是否是同一对象。

转载于:https://www.cnblogs.com/huojg-21442/p/7124823.html

java实体类如果不重写toString方法,会如何?相关推荐

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

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

  2. hibernate里的实体类中不能重写toString

    @Test报堆栈溢出,   在main中报错toString 转载于:https://www.cnblogs.com/shan1393/p/9029768.html

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

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

  4. [非技术参考]C#重写ToString方法

    C# 中的每个类或结构都隐式继承 Object 类. 因此,C# 中的每个对象都会获得 ToString 方法,此方法返回该对象的字符串表示形式. 例如,所有 int 类型的变量都有一个 ToStri ...

  5. java的知识点11——面向对象的三大特征之一继承、instanceof 运算符、方法的重写override、Object类基本特性、toString方法

    面向对象的三大特征:继承.封装.多态 继承的实现 继承让我们更加容易实现类的扩展.子类是父类的扩展 使用extends实现继承 package cn.sxt;public class Test {pu ...

  6. 实体类重写toString方法

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

  7. 【java基础】为什么重写toString()方法?

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

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

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

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

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

最新文章

  1. 再见!Kafka决定弃用Zookeeper...
  2. CPU100%不限性能和100%独享资源的区别
  3. VTK:可视化之CameraModel1
  4. java 程序输出 赵_编写一个完整的JAVA的程序
  5. Linux中expect命令实现交互,修改VNCPASSWD
  6. date_range
  7. python优先级排序_用Python实现优先级队列的3种方法
  8. 关于Microsoft Office 2007 Beta 简体中文版的一些消息
  9. mysql随机姓名_mysql 随机生成姓名函数,及模拟大量测试数据
  10. SharePoint自动化系列——Set MMS field value using PowerShell.
  11. steam常用计算机,絮絮叨叨的繁星 篇二:新电脑必备——常用验机和跑分软件汇总...
  12. Android Jetpack基础组件之AppCompat
  13. RGB 颜色格式转换
  14. Mtk ALPS Led驱动的加载过程
  15. 安装Adobe全家桶时出现The installation cannot continue as the installer file may be damaged.解决方法。
  16. python 将列表按指定长度拆分
  17. weblogic打补丁详细步骤(linux)
  18. JavaScript的入门(下)
  19. 2008年12月大小非解禁股一览表
  20. 从零开始学Pyqt5之【控件介绍】(15):绘图类控件QPainter、QPen、QBrush、QPixMap

热门文章

  1. 【2019牛客暑期多校训练营(第六场)- D】Move(随机化二分)
  2. 1.Introduction and Evaluation
  3. 哪个读书app可以导入txt_QQ阅读iphone版怎么导入电子书 三种手机QQ阅读器导入本地图书图文教程...
  4. centos写mysql光标移到上一行_python操作mysql——使用pymysql库
  5. 金陵科技学院计算机系男女比,眼已亮瞎:719所全国高校男女比例排名
  6. Maven之自定义pom类型的基础项目
  7. java asc码_Java中ASC码与字符互相转化
  8. leetcode155. 最小栈
  9. leetcode72 编辑距离
  10. ubuntu apache配置负载均衡篇(一)