Can a constructor be used to change the data inside an object?

A good answer might be:

No. Constructors always create new objects. (They might get data from an old object, but a completely separate object will be constructed using a different chunk of main memory.)

Dangerously Similar Program

Here is the example program, this time modified to create a second Point object:


import java.awt.*;
class ChangingData2
{
  public static void main ( String arg[] )
  {
    Point pt = new Point( 12, 45 );                  // construct a Point
    System.out.println( "First values: " + pt );     

    pt       = new Point( -13, 49 ) ;                // construct a new Point
    System.out.println( "Final values: " + pt ); 
  }
}

Here is a picture showing the situation before and after the second assignment statement:

In the "After" picture, the first object is shaded to emphasis that it is now "garbage." The reference variable pt refers to the newly created object.

QUESTION 14:

What will this second version of the program output to the monitor?