Eine Klassendefinition in Java wird durch das Schlüsselwort class eingeleitet. Anschließend folgt innerhalb von geschweiften Klammern eine beliebige Anzahl an Variablen- und Methodendefinitionen. Das folgende Listing ist ein Beispiel für eine einfache Klassendefinition:
Beispiel
public class Auto
{
public String name;
public int erstzulassung;
public int leistung;
}
Diese Klasse enthält keine Methoden, sondern lediglich die Variablen name, erstzulassung und leistung. Diese werden auch Instanzmerkmale genannt. Eine methodenlose Klassendefinition entspricht dem Konzept des Verbunddatentyps aus C oder PASCAL (struct bzw. record).
Um von einer Klasse ein Objekt anzulegen, muß eine Variable vom Typ der Klasse deklariert und ihr mit Hilfe des new-Operators ein neu erzeugtes Objekt zugewiesen werden:
Auto meinKombi; meinKombi = new Auto();
Die erste Anweisung ist eine normale Variablendeklaration, wie sie aus Kapitel 4 bekannt ist. Anstelle eines primitiven Typs wird hier der Typname einer zuvor definierten Klasse verwendet. Im Unterschied zu primitiven Datentypen wird die Objektvariable meinKombi als Referenz gespeichert. Die zweite Anweisung generiert mit Hilfe des new-Operators eine neue Instanz der Klasse Auto und weist sie der Variablen meinKombi zu.
In Java wird jede selbstdefinierte Klasse mit Hilfe des new-Operators instanziert. Mit Ausnahme von Strings und Arrays, bei denen der Compiler auch Literale zur Objekterzeugung zur Verfügung stellt, gilt dies auch für alle vordefinierten Klassen der Java-Klassenbibliothek.
|
|
Wie bei primitiven Variablen lassen sich beide Anweisungen auch kombinieren. Das nachfolgende Beispiel deklariert und initialisiert die Variable meinKombi: |
Auto meinKombi = new Auto();
Nach der Initialisierung haben alle Variablen des Objekts zunächst Standardwerte. Der Zugriff auf sie erfolgt mit Hilfe der Punktnotation Objekt.Variable. Um unser Auto-Objekt in einen 250 PS starken Mercedes 600 des Baujahrs 1972 zu verwandeln, müßten folgende Anweisungen ausgeführt werden:
meinKombi.name = "Mercedes 600"; meinKombi.erstzulassung = 1972; meinKombi.leistung = 250;
Ebenso wie der schreibende erfolgt auch der lesende Zugriff mit Hilfe der Punktnotation. Die Ausgabe des aktuellen Objektes auf dem Bildschirm könnte also mit folgenden Anweisungen erledigt werden:
System.out.println("Name........: "+meinKombi.name);
System.out.println("Zugelassen..: "+meinKombi.erstzulassung);
System.out.println("Leistung....: "+meinKombi.leistung);