2015-09-26 84 views
1

爲了解釋我的問題,在下面的代碼中,爲什麼我必須傳遞類的對象/實例才能看到如何重寫toString方法以及爲什麼toString方法,沒有類型接受那個對象的參數?爲什麼對象類方法將類的實例作爲它們的參數

Class Teacher 

{ 

     public String toString() 

     { 

      return("Hello") 
     } 
} 


Class TestTeacher 

{ 

      public static void main(String []arr) 
      { 
       Teacher obj = new Teacher(); 
       System.out.println(obj); 
      } 
} 

回答

0

爲什麼我要傳遞一個類的對象/實例只是爲了看看toString方法被重寫

你並不需要通過對象爲toString方法,您可以直接致電

Teacher obj = new Teacher(); 
String output = obj.toString(); 
System.out.println(output); 

爲什麼toString方法有一個類型參數來接受該對象?

它沒有。我認爲你很困惑,因爲你用對象調用普通的println函數。依次調用toString函數以便能夠將某些內容打印到標準輸出。因此,此處的對象不是toString的參數,而是println函數的參數。

+0

謝謝Bas ..但爲什麼類的對象被傳遞給toString方法而不是字符串? – Scorpio

+0

該對象被傳遞給println函數(而不是tostring)。這只是一個簡短的符號,當println檢測到你想打印一個對象時,它會調用對象的toString函數。 –

+0

非常感謝你......現在我可以停止在計算機上猛擊我的腦袋:) – Scorpio

相關問題