亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于構造函數

關于構造函數

qq_不睡覺的怪叔叔_0 2016-11-11 15:44:48
在本類中new hello()時,為什么會自動調用toString()方法
查看完整描述

3 回答

?
喬小欠兒

TA貢獻18條經驗 獲得超15個贊

哈哈 你這個代碼很有趣,我特意自己試了下,然后看了下System.out.print()方法的源碼,找到了原因。

首先你的hello類重寫了toString方法,你在main方法中調用了System.out.print(new hello()),為了找到原因我們看下System.out.print方法里干了什么。

按住ctrl鼠標點擊print,看到了print方法的源碼如下:

public void print(Object obj) {

? ? ? ? write(String.valueOf(obj));

? ? }

我們可以看到String.valueOf(obj),obj不就是hello類的對象嘛,我們再看看String.valueOf這個方法里做了什么鬼事情。

關鍵的來了,String.valueOf里一看全明白了,源碼實現如下:

public static String valueOf(Object obj) {

? ? ? ? return (obj == null) ? "null" : obj.toString();

? ? }

obj是我們的hello類的對象,obj是我們自己傳進來的,肯定不會為空吧,那就調用了obj.toString方法唄。我們的hello類正好重寫了此方法,然后就被順理成章的調用了。然后打印了toString里的字符。

查看完整回答
1 反對 回復 2016-11-11
?
破東風一路向北

TA貢獻8條經驗 獲得超5個贊

打印對象的時候默認調用toString()方法

查看完整回答
反對 回復 2016-11-11
?
sntatas

TA貢獻53條經驗 獲得超11個贊

打印一個對象時自動調用對象的toString()方法,打印的是基本類型時,調用包裝類的toString()方法

查看完整回答
反對 回復 2016-11-11
?
AbyssWalker

TA貢獻17條經驗 獲得超5個贊

toString()方法就在hello類里,new hello()實例化后當然會調用了

查看完整回答
反對 回復 2016-11-11
  • 3 回答
  • 0 關注
  • 1859 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號