Logo des digitalen Schulbuchs inf-schule.de. Schriftzug in Zustandsübergangsdiagramm eines endlichen Automaten.

Fachkonzept - Klassen und primitive Datentypen

Einfache Werte und Objekte

In vielen Programmiersprachen - wie auch in Java - unterscheidet man zwischen einfachen oder primitiven Datentypen und Klassen. Der hauptsächliche Unterschied ist, dass einfache Werte wie Zahlen oder Wahrheitswerte im Gegensatz zu Objekten keine Attribute und Methoden besitzen. Außerdem unterscheidet die entsprechenden Variablen, dass diese bei primitiven Datentypen den Wert der Variablen enthalten, bei Objekten dagegen nur einen Verweis auf das Objekt. Dies wirst Du im Kapitel zu Beziehungen zwischen Objekten genauer kennen und verstehen lernen.

Beides sind aber Datentypen, können also Typen von Attributen, Rückgaben einer Methode, Parametern etc. sein. In beiden Fällen kann man also z.B. lokale Variablen in der folgenden Art definieren und ihnen einen Wert bzw. ein Objekt zuweisen:

int x = 5;
Hund h = new Hund();

An diesem Beispiel kann man eine sehr starke Konvention in Java und einigen anderen Sprachen erkennen: Primitive Datentypen wie int oder boolean werden klein geschrieben. Klassen wie String, Hund, Actor oder Random werden groß geschrieben. Man könnte eigene Klassen zwar klein schreiben und das Programm würde trotzdem funktionieren. Dennoch ist es sehr ratsam sich an diese Konvention zu halten. Variablen mit einfachen Werten und Objekten lassen sich nämlich unterschiedlich benutzen:

// Geht so nicht, da x eine einfache Zahl enthält
x.wert = 4;
x.ausgeben();

// Funktioniert (vorausgesetzt die Attribute und Methoden existieren und sind öffentlich)
h.alter = 10;
h.bellen();

Methodenaufrufe verketten

Methodenaufrufe kann man auch verketten, wenn die Rückgabe einer Methode wieder ein Objekt ist. Man spart sich dann oft die Definition lokaler Variablen, die man sonst nur einmal bräuchte. Hat man sich einmal an diese Schreibweise gewöhnt, kann man so sehr knappe und dennoch gut lesbare Anweisungen formulieren.

Unter der Annahme, dass ein Hund eine Methode hat, die dessen Vater zurück gibt, ist folgender Code gültig:

// Lässt den Opa von h bellen
h.getVater().getVater().bellen();
// als Kurzform von
Hund papa = h.getVater();
Hund opa = papa.getVater();
opa.bellen();

Auch ein frisch geborener Welpe ohne Namen kann bellen:

new Hund().bellen();

Nun lässt sich auch der Ausdruck zum Erzeugen einer Zufallszahl in Java erklären und sogar ganz gut merken. (Keine Sorge, falls Du ihn Dir nicht merken kannst. Du findest ihn z.B. auch jederzeit leicht bei den Java-Schnipseln im Anhang.)

// Erzeuge ein Objekt der Klasse Random aus dem Paket java.util
// und rufe daran die Methode zum Erzeugen einer Zufallszahl auf
int zufallszahl = new java.util.Random().nextInt(10);
X

Fehler melden

X

Suche