JavaM005—toString的用法
toString
public String toString()
返回該物件的字串表示。通常, toString
方法會返回一個“以文字方式表示”此物件的字串。結果應是一個簡明但易於讀懂的資訊表示式。建議所有子類都重寫此方法。
Object
類的 toString
方法返回一個字串,該字串由類名(物件是該類的一個例項)、at 標記符“@
”和此物件雜湊碼的無符號十六進位制表示組成。換句話說,該方法返回一個字串,它的值等於:
getClass().getName() + '@' + Integer.toHexString(hashCode())
返回:
該物件的字串表示形式。
因為它是Object裡面已經有了的方法,而所有類都是繼承Object,所以“所有物件都有這個方法”。
它通常只是為了方便輸出,比如System.out.println(xx),括號裡面的“xx”如果不是String型別的話,就自動呼叫xx的toString()方法
總而言之,它只是sun公司開發Java的時候為了方便所有類的字串操作而特意加入的一個方法
回答補充:
寫這個方法的用途就是為了方便操作,所以在檔案操作裡面可用可不用
例子1:
public class Orc { public static class A { public String toString() { return "this is A"; } } public static void main(String[] args) { A obj = new A(); System.out.println(obj); } }
如果某個方法裡面有如下句子: A obj=new A(); System.out.println(obj); 會得到輸出:this is A
例子2:
public class Orc { public static class A { public String getString() { return "this is A"; } } public static void main(String[] args) { A obj = new A(); System.out.println(obj); System.out.println(obj.getString()); } }
會得到輸出:[email protected]的類名加地址形式
System.out.println(obj.getString());
會得到輸出:this is A
看出區別了嗎,toString的好處是在碰到“println”之類的輸出方法時會自動呼叫,不用顯式打出來。
public class Zhang
{
public static void main(String[] args)
{
StringBuffer MyStrBuff1 = new StringBuffer();
MyStrBuff1.append("Hello, Guys!");
System.out.println(MyStrBuff1.toString());
MyStrBuff1.insert(6, 30);
System.out.println(MyStrBuff1.toString());
}
}
值得注意的是, 若希望將StringBuffer在螢幕上顯示出來, 則必須首先呼叫toString方法把它變成字串常量,因為PrintStream的方法println()不接受StringBuffer型別的引數.
public class Zhang
{
public static void main(String[] args)
{
String MyStr = new StringBuffer();
MyStr = new StringBuffer().append(MyStr).append(" Guys!").toString();
System.out.println(MyStr);
}
}
toString()方法在此的作用是將StringBuffer型別轉換為String型別.
public class Zhang
{
public static void main(String[] args)
{
String MyStr = new StringBuffer().append("hello").toString();
MyStr = new StringBuffer().append(MyStr).append(" Guys!").toString();
System.out.println(MyStr);
}
}