1. 程式人生 > >JavaM005—toString的用法

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);        
     }
 }