Kann ein Konstruktor verwendet werden um die Daten innerhalb eines Objekts zu ändern?

Eine gute Antwort könnte sein:

Nein. Konstruktoren erzeugen immer neue Objekte. (Sie könnten Daten eines alten Objekts bekommen, aber ein völlig separates Objekt wird erzeugt werden, das ein anderes Stück Arbeitsspeicher verwendet.)

Gefährlich ähnliches Programm

Hier ist das Beispielprogramm, dieses Mal modifiziert um ein zweites Point-Objekt zu erzeugen:

import java.awt.*;
class DatenAendern2
{
  public static void main ( String arg[] )
  {
    Point pt = new Point( 12, 45 );               // einen Point konstruieren
    System.out.println( "Anfangswerte: " + pt );

    pt       = new Point( -13, 49 ) ;             // einen neuen Point konstruieren
    System.out.println( "Endwerte: " + pt );
  }
}

Hier ist eine Abbildung, die die Situation vor und nach der zweiten Zuweisungsanweisung zeigt:

In der Abbildung "After" wird das erste Objekt grau dargestellt um zu betonen, das es jetzt Ausschuss (Garbage) ist. Die Referenzvariable pt verweist auf das neu erzeugte Objekt.

FRAGE 14:

Was wird diese zweite Version des Programms auf den Bildschirm ausgeben?