toString()方法是Object类的方法,调用toString()会返回对象的描述信息。

  1)为什么重写toString()方法呢?

  如果不重写,直接调用Object类的toString()方法,打印的是该对象的内存地址(类名@哈希码值)。如下代码所示:

class Person {
String name;
String sex;
int age;
public Person() {}
public Person(String name, String sex, int age) {
this.name = name;
this.sex = sex;
this.age = age;
}
} class Demo {
public static void main(String[] args) {
Person p = new Person();
System.out.println(p);
}
}

运行结果:Person@10dea4e

  从上面代码可知,调用p的toString方法,打印出来的信息是类名+内存地址值。不符合要求。根据我们之前学的继承,假如父类的指定的功能能不能满足要求,那么子类可以复写父类的功能函数,那么该对象再调用toString()方法时,则会调用子类复写的toString方法。

  (2)一般什么时候重写toString方法?

  一般在编写代码,POJO类必须重写toString方法。如果继承了另一个POJO类,注意在前面加一下super.toString。

  POJO(Plain Ordinary Java Object)即普通的java类,具有一部分getter/setter方法的那种类就可以称作为POJO类。重写toString()方法后,在方法执行跑出异常时,可以直接调用POJO的toString()方法打印其属性值,便于排查问题。

  (3)如何重写toString()?

  toString()方法重写代码样例如下: 

class Person {
String name;
String sex;
int age; public Person() {
} public Person(String name, String sex, int age) {
this.name = name;
this.sex = sex;
this.age = age;
}

@Override
public String toString() {
return "Person [name=" + name + ", sex=" + sex + ", age=" + age + "]";
} }

  编程习惯:开发者要对自定义的类重写toString(),对对象做详细的说明。

最新文章

  1. dell交换机固件
  2. 【经典】C++&RPG对战游戏
  3. .net 后台读取pdf的值
  4. Android 学习笔记之网络通信基础+WebView....
  5. 使用checkbox实现纯CSS下拉框
  6. POJ2112 Optimal Milking (网络流)(Dinic)
  7. 实时通讯库 libre/librem/restund/baresip
  8. 使用python编写批量卸载android应用的脚本
  9. ASP.NET关于引用bootstrap.css导致Gridview Header无法居中
  10. JAVA GC之标记 第五节
  11. openstack pike 使用 openvswitch + vxlan
  12. Android Studio 3.1 Beta 1发布,如何及时下载更新
  13. SpringMVC学习笔记三 整合jdbc和事务
  14. Linux实战案例(5)关闭Centos的防火墙
  15. Redis学习之二 数据类型和相关命令
  16. 细说log4j之log4j 2.x
  17. [CQOI2005]三角形面积并
  18. Unity打包Android平台AssetBundle脚本
  19. winform和wpf如何实现鼠标穿透的效果
  20. Centos7 环境下开机 自启动服务(service) 设置的改变 (命令systemctl 和 chkconfig用法区别比较)

热门文章

  1. nextLine()和next()的区别和使用方法
  2. Leetcode(198)-打家劫舍
  3. ffmpeg开发环境搭建--(linux)
  4. 实现 MyBatis 流式查询的方法
  5. JPG学习笔记3(附完整代码)
  6. Microsoft Lifecycle Policy
  7. modal 遮罩层,滚动穿透 bug
  8. taro swiper & scroll tabs
  9. vscode好用插件总结
  10. SpringBoot接收map类型的参数