More about Objects and Classes

10. It expects a reference to a String as a parameter.


Just as the program is about to close, how many objects have been created?     Four, counting the String object.

Has any garbage been created?    No, because a reference variable points to each object.

Automatic Call of toString()

It looks like the following will not work:

Point a = new Point();  // a is a Point reference

System.out.println( a ); 
                    +--- should be String reference

However, it does work, for the following reason:

When a parameter should be a String reference, but is a reference to another type of object, Java calls the object's toString() method to create a String and then uses the resulting String reference.

All objects (of any type at all) have their own toString() method, so this trick works with any object.

Question 10:

(Puzzle: ) Does a String object have a toString() method?