Java之重写Object类的toString方法
有任何问题加群讨论,还可以领取精美学习资料噢~
加群时请备注~
一、先看看重写之前的效果:
package com.xiao.toString; /** * @author 笑笑 * @Date 2018年4月14日下午10:16:36 * */ public class Student { private String name; private int age; //空参构造 public Student() { } //有参构造 public Student(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
package com.xiao.toString; /** * @author 笑笑 * @Date 2018年4月14日下午10:17:43 * */ public class ToStringTest { public static void main(String[] args) { //测试Object中的toString方法,Student默认继承Object类,没有重写toString方法 Student s = new Student("笑笑",18); String s1 =s.toString(); System.out.println(s); System.out.println(s1); } }
打印结果:
从上面我们可以看出,System.out.println(); 语句输出是对象的时候,会默认调用对象的toString方法;
而Object类的toString方法默认返回的是对象的完整类名+地址,一般情况下,没有较大的实际意义,所以我们一般会重写toString方法。
二.重写toString方法:
package com.xiao.toString; /** * @author 笑笑 * @Date 2018年4月14日下午10:16:36 * */ public class Student { private String name; private int age; //空参构造 public Student() { } //有参构造 public Student(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } //重写Object类中的toString方法,输出所有成员变量的值 public String toString(){ return "name="+name+","+"age="+age; } }
测试:
package com.xiao.toString; /** * @author 笑笑 * @Date 2018年4月14日下午10:17:43 * */ public class ToStringTest { public static void main(String[] args) { //测试重写后的toString方法 Student s = new Student("笑笑",18); String s1 =s.toString(); System.out.println(s); System.out.println(s1); } }
打印结果: