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 gespeichert. 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() ); // ein temporäres Stringobjekt // 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 dem 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.
Welchen Typ von Parameter (das Zeug innerhalb der Klammern) erwartet die