API中是這麼解釋的
toString
public String toString()返回該對象的字符串表示。通常,toString 方法會返回一個“以文本方式表示”此對象的字符串。結果應是一個簡明但易於讀懂的信息表達式。建議所有子類都重寫此方法。
Object 類的 toString 方法返回一個字符串,該字符串由類名(對象是該類的一個實例)、at 標記符“@”和此對象哈希碼的無符號十六進制表示組成。換句話說,該方法返回一個字符串,它的值等於:
getClass().getName() + ‘@’ + Integer.toHexString(hashCode())
返回:
該對象的字符串表示形式。
/*public String toString();返回該對象的字符串表示
*
*
* getClass().getName() + '@' + Integer.toHexString(hashCode())
*
* Integer類下的一個靜態方法
* public static String toHexString(int i):把一個整數轉化爲16進製表示的字符串
*
* 現在是沒有意義的,所以建議子類重寫該方法(把該類的所有成員變量值組成返回即可),可以自動生成
*/
public class ToStringTest {
public static void main(String[] args) {
teacher t2 = new teacher();
teacher t3 = new teacher();
System.out.println(t2);
System.out.println(t3);
System.out.println("-----------------");
System.out.println(t2.hashCode());//366712642
System.out.println(t2.getClass().getName());
System.out.println("-----------------");
System.out.println(t3.hashCode());//1829164700
System.out.println(t3.getClass());
System.out.println("-----------------");
System.out.println(t2.toString());
System.out.println(t3.toString());
System.out.println("-----------------");
System.out.println(t2.getClass().getName()+'@'+Integer.toHexString(t2.hashCode()));
System.out.println(t2.toString());
}
}
class teacher{
private String name;
private int age;
public teacher(String name, int age) {
super();
this.name = name;
this.age = age;
}
public teacher() {
super();
// TODO 自動生成的構造函數存根
}
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;
}
//@Override
//public String toString() {
// TODO 自動生成的方法存根
// return super.toString();
//return "hello";
//}
@Override
public String toString() {
return "teacher [name=" + name + ", age=" + age + "]";
}
}