重温java基础,超类Object方法的重写真的很重要,记录下toString()方法的重写。
首先toString()的源码如下:
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
其原始定义:返回结果必定是字符串,该类的完整类名+“@”+内存地址值(16进制)。
但对于开发者而言,对此对象的各个属性值感兴趣,若不重写toString()方法,示例如下:
public class Person {
private int id;
private String name;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
public class PersonTest {
public static void main(String[] args){
Person person = new Person();
person.setId(10000);
person.setName("zhangsan");
person.setPassword("admin");
System.out.println(person);
}
}
重写toString()方法代码如下:
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return this.getId() +"--"+ this.getName() +"--"+ this.getPassword();
}
运行结果就变成了