Kann ein Konstruktor verwendet werden um die Daten innerhalb eines Objekts zu ändern?
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.)
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.