Re: [問題] 請問toString的觀念

看板java作者 (隱者)時間19年前 (2006/04/24 18:43), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串10/25 (看更多)
※ 引述《Egriawei (斷背山狼與羊)》之銘言: : 首先 : toString()是Object類別的的方法之一 : 正確來說是public String toString() : 將回傳字串 : 書上是這樣寫: : 當呼叫System.out.println()方法輸出某物件時 : 將自動呼叫該物件的toString()方法 : (例入一個由某類別(class A)為模子產生的物件a) : 輸出描述該物件的字串 : 下面是我的看法: : 如果沒有定義toString()那就是保持原樣 : System.out.println()的()中 : 特地寫成a.toString()或是直接輸入a : 結果指的都是該物件的a.toString()這個會回傳字串的方法 : 照理說就算透過override的方式重新定義a.toString() : 結果也還是一樣的 也可以用查api的方法 1. 先找出System.out.println(Object o)的方法 println是out的方法, out是System的inner class 他的型態為PrintStream, url: http://0rz.net/1c1gK 看看println(Object)是怎麼寫的 ======================================================= println public void println(Object x) Print an Object and then terminate the line. This method behaves as though it invokes print(Object) and then println(). Parameters: x - The Object to be printed. ======================================================= 有了上面的提示,我們應該再查一下print(Object x) print public void print(Object obj) Print an object. The string produced by the String.valueOf(Object) method is translated into bytes according to the platform's default character encoding, and these bytes are written in exactly the manner of the write(int) method. Parameters: obj - The Object to be printed See Also: Object.toString() ============================================================= 上面是說,為了要應出內容所以會呼叫String的valueOf(Object)方法 2. 查詢String的api http://0rz.net/521hO valueOf public static String valueOf(Object obj) Returns the string representation of the Object argument. Parameters: obj - an Object. Returns: if the argument is null, then a string equal to "null"; otherwise, the value of obj.toString() is returned. See Also: Object.toString() ============================================================= 上面的說明告訴我們當obj不是null時,會呼叫Object的toString()方法 所以,我們要再查一下 http://0rz.net/3e1iX toString public String toString() Returns a string representation of the object. In general, the toString method returns a string that "textually represents" this object. The result should be a concise but informative representation that is easy for a person to read. It is recommended that all subclasses override this method. The toString method for class Object returns a string consisting of the name of the class of which the object is an instance, the at-sign character `@', and the unsigned hexadecimal representation of the hash code of the object. In other words, this method returns a string equal to the value of: getClass().getName() + '@' + Integer.toHexString(hashCode()) Returns: a string representation of the object. 所以,結果就是這樣嚕 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.26.34.20

04/24 19:00, , 1F
跟我寫的那篇有什麼差別... T___T
04/24 19:00, 1F
文章代碼(AID): #14JAli7Y (java)
討論串 (同標題文章)
文章代碼(AID): #14JAli7Y (java)