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);