JAVA的toString方法的一個小例子
阿新 • • 發佈:2019-05-06
為什麽 str mage void code span 例子 image 連接
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類拼接時也會調用該類。
JAVA的toString方法的一個小例子