Re: [問題] 請問toString的觀念
※ 引述《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
04/24 19:00, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 10 之 25 篇):
java 近期熱門文章
PTT數位生活區 即時熱門文章