java实体类如果不重写toString方法,会如何?
先认识一下Object
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方法,会如何?相关推荐
- java中的tostring_java 中重写toString()方法
toString()方法 一般出现在System.out.println(类名.toString()); toString()是一种自我描述方法 本身返回的是 getClass().getName() ...
- hibernate里的实体类中不能重写toString
@Test报堆栈溢出, 在main中报错toString 转载于:https://www.cnblogs.com/shan1393/p/9029768.html
- [转载] java重写toString()方法
参考链接: 在Java中重写toString() 前言: 在你兴高采烈的写完一个类,创建测试类时,创建对象,传入参数,调用对象,以为会得到参数值,但突然发现输出的是" 类名@什么东东?(其实 ...
- [非技术参考]C#重写ToString方法
C# 中的每个类或结构都隐式继承 Object 类. 因此,C# 中的每个对象都会获得 ToString 方法,此方法返回该对象的字符串表示形式. 例如,所有 int 类型的变量都有一个 ToStri ...
- java的知识点11——面向对象的三大特征之一继承、instanceof 运算符、方法的重写override、Object类基本特性、toString方法
面向对象的三大特征:继承.封装.多态 继承的实现 继承让我们更加容易实现类的扩展.子类是父类的扩展 使用extends实现继承 package cn.sxt;public class Test {pu ...
- 实体类重写toString方法
1.用途: toString()方法 一般出现在System.out.println(类名.toString()); toString()是一种自我描述方法 本身返回的是 getClass().get ...
- 【java基础】为什么重写toString()方法?
不得不说,有很多java初学者写java实体类的时候,并没有真正理解重写toString() 方法,可能是口头知道也可能是跟风随带添加toString() 方法,并没有真正理解其意义,如果真要被问起来 ...
- java 默认tostring_【java基础】为什么重写toString()方法?
不得不说,有很多java初学者写java实体类的时候,并没有真正理解重写toString() 方法,可能是口头知道也可能是跟风随带添加toString() 方法,并没有真正理解其意义,如果真要被问起来 ...
- [转载] JAVA面向对象之代码块 继承 方法的重写 super关键字与重写toString()方法介绍
参考链接: 可以重写Java中的私有方法吗 JAVA面向对象之代码块与继承 代码块分类 局部代码块 作用:限制变量生命周期 书写位置:在方法中 构造代码块 开发中很少使用 书写位置:类中 方法外 调 ...
最新文章
- 再见!Kafka决定弃用Zookeeper...
- CPU100%不限性能和100%独享资源的区别
- VTK:可视化之CameraModel1
- java 程序输出 赵_编写一个完整的JAVA的程序
- Linux中expect命令实现交互,修改VNCPASSWD
- date_range
- python优先级排序_用Python实现优先级队列的3种方法
- 关于Microsoft Office 2007 Beta 简体中文版的一些消息
- mysql随机姓名_mysql 随机生成姓名函数,及模拟大量测试数据
- SharePoint自动化系列——Set MMS field value using PowerShell.
- steam常用计算机,絮絮叨叨的繁星 篇二:新电脑必备——常用验机和跑分软件汇总...
- Android Jetpack基础组件之AppCompat
- RGB 颜色格式转换
- Mtk ALPS Led驱动的加载过程
- 安装Adobe全家桶时出现The installation cannot continue as the installer file may be damaged.解决方法。
- python 将列表按指定长度拆分
- weblogic打补丁详细步骤(linux)
- JavaScript的入门(下)
- 2008年12月大小非解禁股一览表
- 从零开始学Pyqt5之【控件介绍】(15):绘图类控件QPainter、QPen、QBrush、QPixMap
热门文章
- 【2019牛客暑期多校训练营(第六场)- D】Move(随机化二分)
- 1.Introduction and Evaluation
- 哪个读书app可以导入txt_QQ阅读iphone版怎么导入电子书 三种手机QQ阅读器导入本地图书图文教程...
- centos写mysql光标移到上一行_python操作mysql——使用pymysql库
- 金陵科技学院计算机系男女比,眼已亮瞎:719所全国高校男女比例排名
- Maven之自定义pom类型的基础项目
- java asc码_Java中ASC码与字符互相转化
- leetcode155. 最小栈
- leetcode72 编辑距离
- ubuntu apache配置负载均衡篇(一)