Re: question about the toString Method
Art Cummings wrote:
You call
System.out.println(myCourse), which calls
String.valueOf(myCourse), which calls
myCourse.toString(), which returns a String to
String.valueOf(myCourse), which returns the same String to
System.out.println(myCourse), which then calls
System.out.print(theString), which returns to
System.out.println(myCourse), which eventually returns to
You.
Thanks Eric,
I think I follow what you're saying. My Java intermediate course is
starting in a couple of weeks. I'm wondering at what point concepts like
this are introduced. Is this a graduate level understanding? [...]
No, I wouldn't say so. The approach Patricia Shanahan
suggests ("RTFM") is usually best: The Javadoc is supposed to
tell you what the method does, and (if appropriate) how it
does it. In this case, the Javadoc for the System class tells
you that the `out' member is a PrintStream, the Javadoc for
the println(Object) method of PrintStream tells you that it
calls String.valueOf() on the object, and the Javadoc for the
valueOf(Object) method of String tells you that it uses the
toString() method of the object's class.
Sometimes the Javadoc omits something you need to know
(or tells you something it really shouldn't). In this case
you can consult the source; I use NetBeans, which can take me
straight to the source code of a standard Java method I'm
curious about. But there's some peril in this approach, because
when you look at the source for PrintStream, say, it can be hard
to tell which parts are guaranteed and will be part of PrintStream
for ever and ever, and which parts are happenstance and might be
different in the Java 9 release. Still, when the Javadoc doesn't
quite fulfill its purpose -- or when you're just curious -- a
peek at the source has value.
--
Eric Sosman
esosman@ieee-dot-org.invalid