【java基础】为什么重写toString()方法?
不得不说,有很多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()
会默认调用Object
的toString
方法,情况如下:
2、重写tostring,每执行System.out.println()
会调用重写的toString
方法,情况则会根据重写的方法打印输出成自己想得到的格式。
3、为了养成良好习惯,建议每次编写实现类都重写一下tostring()
方法!!
【java基础】为什么重写toString()方法?相关推荐
- 【Java基础】重写equals方法详讲
一.重写equals方法 [Java比较学习]重写equals方法的安全写法 1.重写equals方法的两种方式 这里提供两个比较常见的equals重写方法: ● 用instanceof实现重写equ ...
- java 默认tostring_【java基础】为什么重写toString()方法?
不得不说,有很多java初学者写java实体类的时候,并没有真正理解重写toString() 方法,可能是口头知道也可能是跟风随带添加toString() 方法,并没有真正理解其意义,如果真要被问起来 ...
- Java基础——重写toString()方法
1.Object()类的toString() Java默认的toString方法来自Object类 在Java中每个类都直接或者间接继承Object类,toString()方法同样是来自于Object ...
- [转载] JAVA面向对象之代码块 继承 方法的重写 super关键字与重写toString()方法介绍
参考链接: 可以重写Java中的私有方法吗 JAVA面向对象之代码块与继承 代码块分类 局部代码块 作用:限制变量生命周期 书写位置:在方法中 构造代码块 开发中很少使用 书写位置:类中 方法外 调 ...
- [转载] java重写toString()方法
参考链接: 在Java中重写toString() 前言: 在你兴高采烈的写完一个类,创建测试类时,创建对象,传入参数,调用对象,以为会得到参数值,但突然发现输出的是" 类名@什么东东?(其实 ...
- java中的tostring_java 中重写toString()方法
toString()方法 一般出现在System.out.println(类名.toString()); toString()是一种自我描述方法 本身返回的是 getClass().getName() ...
- java实体类如果不重写toString方法,会如何?
先认识一下Object Object 类的 toString 方法 返回一个字符串,该字符串由类名(对象是该类的一个实例).at 标记符"@"和此对象哈希码的无符号十六进制表示组成 ...
- Java Object类中toString方法的重写
Object类中的tostring方法的: 当我们输出一个对象时,实际是输出的是这个类中的tostring方法,是一个地址值,而不是类中的属性. 一:子类没有重写Object类中的toStrinng方 ...
- java tostring 父类_java重写toString()方法
toString()方法是Object类的方法,调用toString()会返回对象的描述信息. 1)为什么重写toString()方法呢? 如果不重写,直接调用Object类的toString()方法 ...
最新文章
- 页面上水平飞舞的图片
- 《分布式系统:概念与设计》一3.2 网络类型
- 民主湖呀,不知道是好看还是破烂
- MYSQ 查看 2 进制日志
- UNIX(进程间通信):01---Linux进程通信方式
- Linux系统运行Windows程序(Linux执行windows程序)
- python的神经网络模块接法图解_图神经网络库PyTorch geometric
- 321电商学院 与华中师大联手 - 2014-10-22
- 斑马打印机链接数据库实现自动打印
- Excel表格身份证号码如何一键提取性别、年龄、出生年月
- Jsp+Servlet飞机票预定系统(JavaWeb毕业设计源码)
- 忠魁互联优化:头条SEO全网搜索营销怎么做?
- 蓝桥杯2020年第十届C/C++省赛A组第4题-迷宫(bfs)
- Win8 许可证过期怎么重新激活?
- Java实现接口(打印机)
- 高德地图和百度地图数据下载
- 【USACO】青铜莲花池[2]
- InputStream读取数据
- python非可选参数_带plac的可选参数的默认值和非默认值 - python
- Python3——numpy中mean和average的区别