toString()方法是Object類的方法,調用toString()會返回對象的描述信息。
1)為什么重寫toString()方法呢?
如果不重寫,直接調用Object類的toString()方法,打印的是該對象的內存地址(類名@哈希碼值)。如下代碼所示:
classPerson {
String name;
String sex;intage;publicPerson() {}public Person(String name, String sex, intage) {this.name =name;this.sex =sex;this.age =age;
}
}classDemo {public static voidmain(String[] args) {
Person p= newPerson();
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()方法重寫代碼樣例如下:
classPerson {
String name;
String sex;intage;publicPerson() {
}public Person(String name, String sex, intage) {this.name =name;this.sex =sex;this.age =age;
}
@OverridepublicString toString() {return "Person [name=" + name + ", sex=" + sex + ", age=" + age + "]";
}
}
編程習慣:開發者要對自定義的類重寫toString(),對對象做詳細的說明。