JAVA的toString方法的一個小例子


Object是一個抽象類,他有很有方法,其中的toString方法是我們常見的一個方法,我們可以看這段代碼

package com.com.day1;

public class ToStringTest {
static int i=1;
public static void main(String args[]){
System.out.println("love "+new ToStringTest());
ToStringTest a=new ToStringTest();
a.i++;
System.out.println("me "+a.i);
}
public String toString(){
System.out.print("I ");
return "java";
}
}

其執行結果為:

 

那么為什么會出現上面的運行結果?

首先我們可以在JAVA API文檔中查找Object類里面的toString方法;

 

 看不懂了?沒關系,我們來實現一下:

package com.com.day1; public class ToStringTest { static int i=1; public static void main(String args[]){ System.out.println(new ToStringTest()); } }

總結:當我們直接調用對象的時候會輸出 類名@對象的哈希碼

再來一個測試

package com.com.day1; public class ToStringTest { static int i=1; public static void main(String args[]){ System.out.println(new ToStringTest()); } public String toString(){ return "java"; } }

總結:當我們重寫toString方法時會return返回對應的字符串

再來一個測試

package com.com.day1; public class ToStringTest { static int i=1; public static void main(String args[]){ System.out.println("love "+new ToStringTest()); } public String toString(){ return "java"; } }

總結:toString方法可以通過+和其他類型連接起來而且是轉為字符串類型連接

這樣我們就有頭緒了,再看這個測試

package com.com.day1; public class ToStringTest { static int i=1; public static void main(String args[]){ System.out.println("love "+new ToStringTest()); } public String toString(){ System.out.print("I "); return "java"; } }

總結:在輸出之前會調用toString方法,解析這個方法時會先輸出 I 之后再輸出 love java

package com.com.day1; public class ToStringTest { static int i=1; public static void main(String args[]){ ToStringTest a=new ToStringTest(); a.i++; System.out.println("me "+a.i); } public String toString(){ System.out.print("I "); return "java"; } }

有個疑問?為何這個地方ToStringTest a=new ToStringTest()沒有調用這個方法?

總結:在用System.out.println();z輸出該類的時候(有點想c++cout的重載),會調用toString函數。將該類與String類拼接時也會調用該類。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM