2013-03-21 105 views
-1

//我一直在試圖理解字符串是如何工作的以及它的主要功能是什麼,但是我遇到了麻煩。就像下面的例子。 toString方法到底做了什麼?toString方法如何工作?

public class Item { 

    private String name; 
    private int price; 
    private int qty; 

    public Item() { 

    } 

    public Item(String n, int p, int q){ 
     this.name=n; 
     this.price=p; 
     this.qty=q; 
    } 

    public String getName() { 
     return name; 
    } 

    public int getPrice() { 
     return price; 
    } 

    public int getQty() { 
     return qty; 
    } 

    public String toString() { 
     return name +": $" + price+":" + qty; 
    } 

回答

7

的目的是toString明確記載在API中:

返回該對象的字符串表示。通常,toString方法返回一個字符串,用於「文本地表示」此對象。結果應該是簡明但內容豐富的表示 ,這對人們來說很容易閱讀。建議所有 子類重寫此方法。

Object#toString() will produce: 

Object類的toString方法返回由 其中物體是一個實例,所述-SIGN 字符'@」的類的名稱的字符串,並且無符號十六進制表示對象的散列 代碼。換句話說,該方法返回一個字符串等於 ,它的值:

getClass().getName() + '@' + Integer.toHexString(hashCode()) 

如果你在你的類調用重寫的toString到默認的對象#的toString()將yourclass#的toString更換()。在當前的代碼,如果你嘗試打印項目實例的輸出將是格式:

name +": $" + price+":" + qty; 
+0

有意義...... – duffymo 2013-03-21 15:18:33

+0

要添加到此:應該說'toString'可以用來完全複製對象。例如,'Tile(int x,int y,int z)'會打印出來,如:'Tile [x = 5] [y = 1] [z = 7]'。 – 2013-03-21 15:20:16

1

toString通常是對象的用戶友好/可讀的字符串表示形式。您可以將其用於調試,記錄或向最終用戶/客戶端顯示信息。

這裏是一個簡短的tutorial討論如何以及何時使用toString。

0

toString是每當java需要您的類的對象的字符串表示形式時調用的函數。例如,如果您致電System.out.println(a);,其中a的類型爲Item,則會顯示由toString返回的值。此方法是Object的一部分,因此每個java對象都有一些默認實現。仍然在很多情況下,它沒有足夠的信息量,它更好地覆蓋它。

0

toString提供的Object

0123一 String表示

想象一下這個類及以下電話:

System.out.println(aPerson.getName()); 

我們toString方法意味着我們可以簡單地做:

System.out.println(aPerson); 
0

我喜歡把toString()作爲一個方便的功能。當你做這樣的事情:

MyObject m = ...// 
System.err.println(m); 

println(m)實際上是調用m.toString()獲取對象的人類可讀表示。它每個Object都是固有的,所以你可以總是覆蓋它,讓它返回一個最能描述你自己對象的字符串。