Re: [問題] print char[]問題

看板java作者 (等等等等等等等等)時間17年前 (2007/03/10 23:58), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串13/13 (看更多)
※ 引述《walm20 (我要買車啦)》之銘言: : ※ 引述《moonforget (等等等等等等等等)》之銘言: : : 這是有一些型態的問題 : : 如: : : String string = "happy"; : : int num = 3 + 4; : : System.out.println(string + num); : : System.out.println(string + 3 + 4); : : 顯示: : : happy7 : : happy34 : : 這樣看出一些東西麼? : : 就是個別將每項都提升成字串 : : 但int為基本型態並非物件 : : 而你的問題應該是個別提升成了物件,因為String也是一個物件,而char[]也是物件 : : 如果你將你的程式寫成: : : String string = "str = "; : : char[] charArray = { 'H', 'a', 'p', 'p', 'y'}; : : System.out.print(string);//用print(String s) : : System.out.print(charArray);//用print(char[] c) : : 顯示: : : str = Happy : : 就和下列程式不同 : : System.out.print(string + charArray);//用print(Object obj) : : 顯示: : : str = [C@c17164 : : (顯示charArray的記憶體位址) : : 如有錯誤請指教.....我還是個嫩新手....謝謝 : : By Java新手 嗯嗯...我又非常無聊的全部看完了一次所有的API和原始碼Orz 但我還在硬掰我的講法XD請各位大大幫忙指正一下,至少讓我知道我的大問題 情況一的第三行是用print(String s)執行,第三行是用print(char[] c)執行 所以可以得到你想要的結果 我的講法是情況二會用print(Object obj)來執行 public void print(Object obj) { write(String.valueOf(obj)); } 他會呼叫valueOf() public static String valueOf(Object obj) { return (obj == null) ? "null" : obj.toString(); 他會呼叫toString() 而我的硬掰解釋是前項用String覆寫Object的toString()得到(繼承想法) 後項用Object的toString()得到 所以前面已經回傳原字串而後者繼續往下跑 Object public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); String public String toString() { return this; } 他又呼叫了一堆東西getClass() getName() toHexString getClass().getName()得到 [C ([代表一維矩陣,C代表字元) 以下省略 也許是我太無聊了,反正知道結果就好 但請各位觀念清楚的大大來說明一下我硬掰講法是否有錯誤... 都懇請講解一下.....拜託謝謝~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.118.199.35 ※ 編輯: moonforget 來自: 140.118.199.35 (03/11 00:00)
文章代碼(AID): #15yjM_1i (java)
討論串 (同標題文章)
文章代碼(AID): #15yjM_1i (java)