Kurz bevor das Programm endet,
wie viele Objekte gibt es 4
und wie viele Objektreferenzen gibt es? 4
Wurde irgendein Ausschuss erzeugt? Noch nicht.
Im Beispielprogramm wurde ein Stringobjekt erzeugt und eine Referenz darauf in einer Referenzvariablen aufgehoben. Das funktioniert, ist aber etwas umständlich. Hier ist eine weitere Modifikation des Beispielprogramms:
import java.awt.*;
class PointBsp3
{
public static void main ( String arg[] )
{
Point a = new Point(); // Deklaration und Konstruktion kombiniert
Point b = new Point( 12, 45 );
Point c = new Point( b );
System.out.println( a.toString() ); // einen temporären String
// basierend auf "a" erzeugen
}
}
Dieses Programm erzeugt drei Point
-Objekte mit den gleichen Werten wie zuvor, aber jetzt ist die Deklaration und Konstruktion eines jeden Point
-Objekts zusammengefasst.
Die letzte Anweisung hat die gleiche Wirkung wie die zwei letzten Anweisungen des vorherigen Programms:
a
auf ein Objekt mit den Daten (0,0).toString()
Methode des Objekts wird aufgerufen.toString()
Methode erzeugt ein Stringobjekt und gibt eine Referenz darauf zurück.System.out.println( Referenz auf ein Stringobjekt );
println
von System.out
verwendet die Referenz,
um die Daten zu finden und sie auf den Bildschirm auszugeben.
Da die String
-Referenz in keiner Referenzvariablen gespeichert wurde,
gibt es keine Möglichkeit das Stringobjekt zu finden. Es ist Ausschuss. Das ist in Ordnung. Es wurde nur zu einem Zweck gebraucht und der Zweck wurde erfüllt.
Es ist sehr gebräuchlich Objekte auf diese Weise zu verwenden.