zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Nicht direkt. Aber eine andere Klasse, die eine main() Methode hat, kann diese Klasse verwenden.

Konstruktoren

Ein Objekt ist ein Speicherabschnitt, der Variablen und Methoden enthält. Eine Klasse ist eine Beschreibung eines möglichen Objekts. Wenn ein Objekt erzeugt wird, wird nach der Beschreibung verfahren. Eine Möglichkeit Objekte zu erzeugen besteht in der Verwendung des new-Operators in Verbindung mit einem Konstruktor. Hier ist noch einmal das Beispielprogramm:

class StringTester
{

  public static void main ( String[] args )
  {
    String str;            // str ist eine Variable, die ein Objekt bezeichnet,
    int  laenge;

    str = new String("Zufaellige Notizen");  // ein Objekt vom Typ String erzeugen

    laenge  = str.length();  // Aufruf der Methode length() des Objekts

    System.out.println("Der String ist " + laenge + " Zeichen lang");
  }
}

Ein Konstruktor hat den gleichen Namen wie die Klasse. Die Zeile des oben stehenden Programms

str = new String("Zufaellige Notizen");  // ein Objekt vom Typ String erzeugen

erzeugt ein neues Objekt vom Typ String. Der new-Operator sagt, erzeuge ein neues Objekt. Ihm folgt der Name des Konstruktors. Der Konstruktor String() ist Teil der Klassendefinition der Klasse String.

Konstruktoren werden oft mit Werten verwendet (Parameter genannt), die im Datenteil des Objekts, das erzeugt wird, gespeichert werden. In dem oben stehenden Programm werden die Zeichen "Zufaellige Notizen" (ohne die Anführungszeichen) im Datenteil des neuen Objekts gespeichert.

Es gibt üblicherweise verschiedene Konstruktoren mit unterschiedlichen Parametern in einer Klasse. Je nachdem wie die Objektdaten initialisiert werden sollen, ist ein Konstruktor besser geeignet als die anderen. Dennoch folgen alle Konstruktoren einer Klasse dem gleichen Plan in der Erzeugung eines Objekts.

FRAGE 14:

(Denkfrage:) Kann ein Konstruktor ein zweites Mal verwendet werden, um die Werte eines erzeugten Objekts zu ändern?