Jeder Konstruktor verlangt vom Benutzer die Bereitstellung von unterschiedlichen Daten.
Jeder der drei Konstruktoren kann verwendet werden, um ein Point
-Objekt
zu erzeugen.
Es ist eine Frage der Zweckmäßigkeit welchen Konstruktor wir verwenden.
Hier ist ein Programm, das einige Point
-Objekte erzeugt:
import java.awt.*; // Klassenbibliothek importieren, // in der die Point-Klasse definiert ist. class PointBsp1 { public static void main ( String arg[] ) { Point a, b, c; // Referenzvariablen a = new Point(); // ein Point-Objekt erzeugen bei ( 0, 0); // Referenz in "a" speichern b = new Point( 12, 45 ); // ein Point-Objekt erzeugen bei ( 12, 45); // Referenz in "b" speichern c = new Point( b ); // ein Point-Objekt erzeugen, // das die gleichen Daten enthält // wie die, die durch "b" referenziert werden } }
Damit der Compiler die Definition von Point
in der Klassenbibliothek nutzen kann, muss die import
-Anweisung verwendet werden.
Die Anweisung import java.awt.*
Point
verwendet).
Hinweis:
Bis jetzt wurde in diesen Aufzeichnungen immer main(String[] args)
verwendet. In dem oben stehenden Beispiel steht main(String arg[])
. Beide Schreibweisen sind zulässig, wobei String[] args
die bessere ist, da sie klar den Datentyp (ein Array vom Typ String) von dem Parameternamen trennt. Als Parametername wird in den englischsprachigen Büchern üblicherweise args
als Abkürzung für arguments verwendet. Mitunter findet man aber auch arg
.
Von deutschsprachigen Autoren wird gerne argv
als Abkürzung für Argumentenvektor verwendet.
Angenommen, dass das Programm gerade in den Arbeitsspeicher geladen wurde und gerade dabei ist zu starten (die Anweisung Point a, b, c;
wurde ausgeführt):
Wie viele Referenzvariablen gibt es?
Wie viele Objekte gibt es?