簡體   English   中英

關於ADT類中的toString方法的說明

[英]Clarification about the toString method within an ADT class

這是我嘗試實現的Complex ADT類中的修改過的toString函數(我的疑問僅是關於此函數,因此我沒有包括之前聲明的私有變量和其他函數):

class ComplexCart implements Complex{
  public String toString(){
    if(image == 0) return (real + "");
  }
}

我們為什么不能寫以下內容?

if(imag == 0) return(real);

為什么我們需要添加額外的“”

由於返回類型為String ,而real是整數類型。 或者,您可以使用real.toString()

 public String toString(){
    if(image == 0) return (real + "");
  }

在上面的代碼中,如果real不是String類型的,則為compile time error

如果它是String類型的,則不會發生錯誤。

要使real string您要real + "".

然后,直接的問題是然后如何使用+ "" ???

這里的字符串文檔

Java語言為字符串連接運算符(+)以及將其他對象轉換為字符串提供了特殊的支持。 字符串連接是通過StringBuilder(或StringBuffer)類及其append方法實現的。 字符串轉換是通過toString方法實現的,該方法由Object定義並由Java中的所有類繼承。

附帶說明:

與String串聯不是一個好主意,有一些相同且更好的方法來實現。

1)Integer.toString(intval);
2)String.valueOf(intval);

這是因為您必須從toString()返回一個String ,並且大概real不是String real + ""執行字符串連接(將real轉換為String並將其與空字符串連接;請參見JLS§15.18.1 )並生成String ,這就是您可以有效返回它的原因。

請注意,您應該考慮在real + ""使用類似Integer.toString(real)東西(請參閱Integer.toString() )。

由於real是int類型,因此toString()方法期望String返回。因此,您需要添加"" ;
+是String串聯運算符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM