zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Jeder Konstruktor verlangt vom Benutzer die Bereitstellung von unterschiedlichen Daten.

Multiple Konstruktoren

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.* besagt, dass die AWT-Bibliothek verwendet werden soll, die ein Teil von Java ist. Der "*" sagt aus, dass alles was in der Bibliothek definiert ist, verwendet werden kann (auch wenn dieses Programm nur die Klasse 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.

FRAGE 4:

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?