2012-01-04 128 views
7

我是java中的新手。說,我有一個類個人。我想打印打印對象的引用

Individual ind = new Individual(); 
System.out.println(ind); 

以上代碼給出了這樣的輸出:

[email protected] 
  1. 這樣做有什麼意義呢?
  2. 對於那個對象它是一種獨特的編號 ?
  3. 我可以定製這個嗎?我的意思是寫一個我自己的功能 ,當打印時它會輸出?
  4. 如果是這樣,我該怎麼辦 這個?
+0

我已經詳細解答了我的答案。它會幫助你更多。謝謝 – Ahamed 2012-01-04 16:37:45

回答

10

如果你想打印任何對象的有意義的內容,你必須實現自己的toString()方法,這將覆蓋父(Object)類的toString()方法。默認情況下,所有類(無論你創建什麼)都會擴展Object類。

示例代碼:

public class Individual { 
    private String name; 
    private String city; 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public String getCity() { 
     return city; 
    } 

    public void setCity(String city) { 
     this.city = city; 
    } 

    @Override 
    public String toString() { 
     StringBuilder builder = new StringBuilder(); 
     builder.append("Name of Individual :").append(this.getName()) 
       .append("\nCity :").append(this.getCity()); 
     return builder.toString(); 
    } 
    public static void main(String[] args) { 
     Individual individual = new Individual(); 
     individual.setName("Crucified Soul"); 
     individual.setCity("City of Crucified Soul"); 
     System.out.println(individual); 
    } 
} 

輸出:

Name of Individual :Crucified Soul 
City :City of Crucified Soul 

如果你有很多變數較大的類,你可以使用XStream來實現你的toString()方法。 XStream將以XML格式打印對象。即使你可以將它們解析回等價對象。希望這會幫助你。

+0

沒有解釋如何/爲什麼1922221真的出現在第一位。 – KNU 2014-11-18 11:37:18

2

由於尚未解釋,重寫toString()方法僅僅意味着您在類中創建了自己的toString()方法。通過在你的類中放入你自己的toString()版本,你可以讓java使用你的toString()方法而不是默認的方法。因爲原始的toString()方法返回一個字符串,但是,toString()方法也必須返回一個字符串。您的個人類將是這個樣子:

public class Individual{ 

    //any other code in the class 

    public String toString(){ 
     return "your string"; 
    } 

} 

然後,當你叫你是System.out.print(IND);它會打印出你的字符串。