作者qrtt1 (隐者)
看板java
标题Re: [问题] 请问toString的观念
时间Mon Apr 24 18:56:51 2006
※ 引述《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
1F:推 PsMonkey:跟我写的那篇有什麽差别... T___T 04/24 19:00