-
关于重写 toString() 方法
学习方法一说。 首先,我们先来创建一个Persion类,它只简单的包含 firstname 和 lastname,当然,加上它的setter 和 getter 法。放在com.bean包下:
package com.bean; public class Persion { private String firstname; private String lastname; public String getFirstname() { return firstname; } public void setFirstname(String firstname) { this.firstname = firstname; } public String getLastname() { return lastname; } public void setLastname(String lastname) { this.lastname = lastname; } }
接下来,新建一个类,名为Test,让它包含main函数: package com.override; import com.bean.Persion; public class Test { public static void main(String[] args) { Persion p = new Persion(); p.setFirstname("Fire"); p.setLastname("Water"); System.out.println(p.toString()); } }
可以看到,运行之后,结果为: com.bean.Persion@c17164
注:打印一个对象,可以直接System.out.println(p);其实java会自动调用p 的 toString() 方法。 但是我们一般想要的结果并不是这样,因为object类的toString()方法总是返回对象的实现类类名 + @ + hashCode值。这显然不能满足我们的需求。像这里,我们是希望能打印出p的全名出来,这时,就需要重写toString()方法,因为重写了toString()之后,那么p在调用toString()方法的时候,会优先调用自己类里的toString()方法。 修改后的类如下:
package com.bean; public class Persion { private String firstname; private String lastname; public String getFirstname() { return firstname; } public void setFirstname(String firstname) { this.firstname = firstname; } public String getLastname() { return lastname; } public void setLastname(String lastname) { this.lastname = lastname; } //重写toString方法 public String toString(){ return firstname + " " + lastname; } }
这时,打印出来的结果就是
Fire Water
当然,可根据不同的需求来编写如何打印对象。
关于重写 toString() 方法
最新推荐文章于 2022-04-14 12:36:16 发布