1、Java所有的對象都是Object類的實例,都可以直接調用該類中定義的方法,這些方法稱為通用方法
2、toString()方法即為Object類中定義的通用方法之一
3、平時我們如果在控制台直接打印輸出一個對象的實例時,其實調用的就是Object類的toString()方法,如下:
class Apple{
private String color;
private double weight;
private String name;
public Apple(){
}
public Apple(String name){
this.name=name;
}
}
public class ToStringTest{
public static void main(String[] args){
Apple p=new Apple("張三");
//-下面兩個輸出結果完全一致,
//-雖然輸出的是Apple類的實例對象
//-其實輸出的是Object類的toString()方法
//-可以用重寫Object類toString()方法的這種方式來給對象寫一個"自我描述"
System.out.println(p);
System.out.println(p.toString());
}
}
輸出結果:

針對上面的輸出結果進行分析:
1、System.out的println()方法只能在控制台上輸出字符串,而Apple類實例是一個在內存中的對象,當用這種方法輸出對象時,實際上輸出的是Object類中的toString()方法返回值
2、toStrong()方法是Object類里的一個實例方法,所有的Java類都是Object類的子類,所以所有Java對象都有toString()方法
3、toString()方法是一個“自我描述”的方法,當輸出某實例對象時,可以通過重寫自定義等方式為對象實現輸出自我描述的信息
4、Object類的toString()方法默認返回該對象實現類的“類名+@+hashcode”值(如上結果中看到的那樣),這個返回值不能實現自我描述功能,所以需要重寫Object類的toString()方法來實現,如下:
class Apple{
private String color;
private double weight;
private String name;
public Apple(){
}
public Apple(String name){
this.name=name;
}
public Apple(String color,double weight){
this.color=color;
this.weight=weight;
}
//-重寫Object類的toString()方法
public String toString(){
return "這是Apple類,里面有一個蘋果,顏色是:"+this.color+",重量是:"+weight;
}
}
public class ToStringTest{
public static void main(String[] args){
Apple p=new Apple("紅色",3.2);
System.out.println(p);
}
}
運行結果:

