Nicht direkt. Aber eine andere Klasse, die eine main()
Methode hat, kann diese Klasse verwenden.
class StringTester
{
public static void main ( String[] args )
{
String str; // str eine Referenzvariable
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 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 einer Konstruktormethode (im weiteren nur noch als Konstruktor bezeichnet).
Hier ist noch einmal das Beispielprogramm:
Ein Konstruktor hat immer den gleichen Namen wie die Klasse. Die Zeile des oben stehenden Programms
str = new String("Zufaellige Notizen");
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.
(Denkfrage:) Kann ein Konstruktor ein zweites Mal verwendet werden, um die Werte eines erzeugten Objekts zu ändern?