Die obenstehende println() Methode kann ohne Probleme ausgeführt werden. Bedeutet das, dass das von a referenzierte Objekt auf den Bildschirm kopiert wird?

Eine gute Antwort wäre:

Nein — ein temporäres Stringobjekt wurde durch die toString() Methode des Objekts erzeugt und die Zeichen in diesem Objekt wurden durch println() an den Bildschirm gesendet.

Ein weiteres Beispielprogramm

Hier ist das Beispielprogramm mit einer weiteren Änderung:

import java.awt.*;
class PointBsp3
{

  public static void main ( String arg[] )
  {
    Point a = new Point();   // kombinierte Deklaration und Konstruktion
    Point b = new Point( 12, 45 );
    Point c = new Point( b );

    System.out.println( a ); // einen temporären String basierend auf "a"
                             // erzeugen und ausgeben
    System.out.println( b ); // einen temporären String basierend auf "b"
                             // erzeugen und ausgeben
    System.out.println( c ); // einen temporären String basierend auf "c"
                             // erzeugen und ausgeben
  }
}

Das Programm gibt aus:

java.awt.Point[x=0,y=0]
java.awt.Point[x=12,y=45]
java.awt.Point[x=12,y=45]

Dieses Programm ist trügerisch kurz; seine Ausführung erfordert ziemlich viel Aktivität.

FRAGE 11:

Kurz bevor das Programm endet, wie viele Objekte sind erzeugt worden und wie viele Objektreferenzen gibt es? Wurde irgendein Ausschuss erzeugt?

Inhaltsverzeichnis