Schlüsselwörter
Typnamen, enum und return
Modifikatoren
Schlüsselwörter in Kontrollstrukturen
Referenzen
const, goto, native und strictfp
Die in Java reservierten Schlüsselwörter (keywords) dürfen in Programmen nicht als Bezeichner verwendet werden. Nachfolgend werden diese Schlüsselwörter aufgelistet und ihre Verwendung kurz beschrieben:
class
Die Definition einer Klasse beginnt (mindestens)
mit dem Schlüsselwort class, unmittelbar gefolgt vom Klassennamen.
import
Mit import-Anweisungen werden einem Javaprojekt in
Paketen zur Verfügung stehende Klassen hinzugefügt.
interface
Die Definition eines Interface beginnt
mit dem Schlüsselwort interface, unmittelbar gefolgt vom Interfacenamen.
extends
Example extends
SuperExample bedeutet, dass die Klasse
Example Subklasse der Klasse
SuperExample ist.
implements
Example
implements
InterfaceExmpl bedeutet, dass der Klasse
Example die abstrakten Methoden des
InterfaceExmpl hinzugefügt werden und
hier implementiert werden müssen bzw. nach getaner Arbeit implementiert
worden sind.
package
Die Definition eines Pakets (package) beginnt
mit dem Schlüsselwort package, unmittelbar gefolgt vom Paketnamen.
new
Eine new-Anweisung besteht aus dem Schlüsselwort
new und dem unmittelbar folgenden Aufruf eines
Konstruktors.
instanceof
Mit instanceof kann überprüft werden, ob das von einer Referenzvariablen
rv referenzierte Objekt von einem bestimmten Typ ist:
rv instanceof Typ; liefert
true, wenn dies der Fall ist, andernfalls false.
boolean
Mit diesem Typnamen werden Boole’sche Variablen deklariert. Boole’sche
Variablen können nur zwei Werte besitzen:
true und false.
byte
Mit dem Typnamen
byte werden Variablen von ebendiesem Typ deklariert. Der
Wertebereich von byte-Variablen umfasst die ganzen Zahlen von
−27 bis +27−1, also von −128 bis 127.
short
Mit dem Typnamen
short werden Variablen von ebendiesem Typ deklariert. Der Wertebereich von short-Variablen umfasst
die ganzen Zahlen von −215 bis +215−1, also von −32768 bis 32767.
int
Mit dem Typnamen
int werden Variablen von ebendiesem Typ deklariert. Der Wertebereich von int-Variablen umfasst die ganzen
Zahlen von −231 bis +231−1, also von −2147483648 bis 2147483647.
long
Mit dem Typnamen
long werden Variablen von ebendiesem Typ deklariert. Der Wertebereich von long-Variablen umfasst die
ganzen Zahlen von −263 bis +263−1, also von
−9223372036854775808 bis 9223372036854775807.
float
Mit dem Typnamen
float werden Variablen von ebendiesem Typ deklariert. Der größte
float-Wert entspricht der Zahl (2−2−23)·2127,
also 340282346638528859811704183484516925440.
double
Mit dem Typnamen
double werden Variablen von ebendiesem Typ deklariert. Der größte
double-Wert entspricht der Zahl (2−2−52)·21023.
char
Mit dem Typnamen
char werden Variablen von ebendiesem Typ deklariert. Die Werte
von
char-Variablen sind character-Literale.
void
Ist eine Methode mit einem der vorstehenden Typnamen deklariert worden, so heißt das, dass nach Aufruf dieser Methode
ein Rückgabewert von ebendiesem Typ zurückgeliefert wird. Eine Methode, die nichts zurückliefern
soll, ist mit dem Schlüsselwort void zu deklarieren (vgl.
Definition von Methoden).
enum
Mit dem Schlüsselwort
enum ist es möglich, eigene Datentypen zu kreiieren, und zwar so,
dass einer Variable von solchem Typ selbstdefinierte
konstante Werte zugewiesen werden können:
enum Position {BUTTOM, CENTER, TOP}
Position center = Position.CENTER;
return
Im Methodenrumpf einer nicht mit
void deklarierten Methode muss eine
return-Anweisung vorhanden sein, mit welcher der Rückgabewert
definiert wird:
return value;
Der Rückgabewert value ist entweder von elementarem Typ oder ein Referenzwert.
default
Eine in einer Klasse vordefinierte Methode kann, eine in einem
Interface vordefinierte Methode muss mit dem Modifikator
default deklariert werden.
public
Auf die mit diesem Zugriffsmodifikator (access modifier) deklarierte
Klassen, Instanz- und Klassenveriablen, sowie Methoden kann von überall aus zugegriffen werden.
private
Die mit diesem Zugriffsmodifikator deklarierte Instanz- und Klassenveriablen und Methoden dürfen und können nur innerhalb
derjenigen Klasse verwendet werden, in welcher diese definiert wurden.
protected
Die mit diesem Zugriffsmodifikator deklarierte Instanz- und Klassenveriablen und Methoden dürfen und können nur innerhalb
derjenigen Klasse verwendet werden, in welcher diese definiert wurden, sowie
in allen Subklassen dieser Klasse.
final
Die mit diesem Nicht-Zugriffsmodifikator deklarierten Klassen können keine Superklassen sein. Von finalen Klassen
können also keine weiteren Klassen abgeleitet werden.
Mit
final deklarierte Attribute und Methoden können nicht
überschrieben werden.
abstract
Abstrakte Methoden
müssen mit dem Nicht-Zugriffsmodifikator abstract
deklariert werden. Enthält eine Klasse mindestens eine abstrakte Methode, so
muss auch diese Klasse mittels abstract
deklariert werden. Eine
abstrakte Klasse kann nicht instanziiert werden.
static
Mit dem Nicht-Zugriffsmodifikator
static deklarierte Attribute und Methoden gehören nie zu
Objekten. Statische Methoden können also nur
über die jeweilige Klasse aufgerufen werden.
synchronized
Mit dem Nicht-Zugriffsmodifikator
synchronized deklarierte Methoden können zur gleichen Zeit nur
von einem einzigen Thread aufgerufen werden.
transient
Kann ein im Hauptspeicher der Anwendung existierendes Objekt in ein Format
konvertiert werden, das es ermöglicht, dieses Objekt in eine Datei zu schreiben oder über eine Netzwerkverbindung zu transportieren,
dann ist dieses Objekt serialisierbar. Mit dem Nicht-Zugriffsmodifikator
transient deklarierte Methoden und Attribute werden bei der
Serialisierung eines Objektes nicht berücksichtigt.
volatile
Der Wert eines mit dem Nicht-Zugriffsmodifikator volatile deklarierten Attributs
kann auch außerhalb des aktuell laufenden Threads verändert werden. Der Wert einer solchen „flatterhaften“
Variable wird also nicht thread-lokal, sondern immer im Hauptspeicher gespeichert.
for
Mit for beginnt eine for-Schleife
(vgl. Schleifen).
while
Mit while beginnt eine while-Schleife
(vgl. Schleifen).
do
Mit do beginnt eine do-while-Schleife
(vgl. Schleifen).
switch
Mit switch beginnt eine switch-Anweisung. (vgl.
Bedingte Anweisungen).
case
Jeder Auswahlblock innerhalb einer switch-Anweisung beginnt mit dem Schüsselwort case
(vgl. Bedingte Anweisungen).
default
Mit dem Schlüsselwort default wird der
default-Auswahlblock innerhalb einer switch-Anweisung gekennzeichnet.
break
Nach der Anweisung break; im Anweisungsblock einer Schleife wird die Schleife
verlassen und es folgt die Abarbeitung der ersten Anweisung direkt nach der Schleife. Die
Anweisung break; innerhalb einer switch-Anweisung bewirkt die
Verzweigung zum Ende dieser switch-Anweisung.
continue
Nach der Anweisung continue; im Anweisungsblock einer Schleife wird der aktuelle
Schleifenschritt abgebrochen und es wird der jeweils nächste Schleifenschritt begonnen.
if
Mit if beginnt eine if-Anweisung (vgl.
Bedingte Anweisungen).
else
Das Schlüsselwort else steht zwischen den Auswahlblöcken einer zweiseitigen
if-Anweisung (vgl. Bedingte Anweisungen).
throws
Mittels throws wird deklariert, welche
Ausnahmen (exceptions) während der Ausführung einer Methode eintreten könnten.
public doSomething() throws Exception;
throw
throw veranlasst die Ausgabe einer
Fehlermeldung, die auch selbstdefiniert sein kann:
throw new MyException("Ein Fehler ist aufgetreten.");
try
Mit try beginnt eine try-Anweisung (vgl.
Behandlung von Fehlern).
catch
Das Schlüsselwort catch ist Bestandteil einer try-Anweisung (vgl.
Behandlung von Fehlern).
finally
Einer try-Anweisung
kann mittels des Schlüsselworts finally
ein Anweisungsblock angehängt werden, der auf jeden Fall nach der ggf.
stattgefundenen Fehlerbehandlung abschließend abgearbeitet wird (vgl.
Behandlung von Fehlern).
assert
Mit assert-Anweisungen kann ein Programm auf Fehler überprüft werden. Wenn
mit logterm ein Boole’scher Ausdruck bezeichnet wird, dann ist
eine assert-Anweisung von folgender Form: assert logterm;.
Ergibt die Auswertung von logterm
während der Laufzeit eines Programms den Wert false, so bricht dieses sofort mit
einer Fehlermeldung ab.
this
Das Schlüsselwort this ermöglicht einem Objekt die Selbstreferenzierung:
Beinhaltet der Rumpf (body) einer zum Objekt
obj gehörenden Methode den Ausdruck
this.x, so repräsentiert dieser Ausdruck einen Verweis auf das
objekteigene Attribut x (vgl.
Instanziieren von Klassen):
super
Sei obj vom Typ
Example. Beinhaltet der Rumpf einer zu diesem Objekt
obj gehörenden Methode den Ausdruck
super.xxx, so wird das Attribut
xxx von obj angesprochen oder die Methode
xxx von obj aufgerufen. Hierbei wird allerdings so getan,
als ob obj eine Instanz der Superklasse von
Example wäre.
Die Schlüsselwörter goto und const sind zwar reserviert, werden aber (bisher) nicht verwendet und haben keinerlei Funktion. Das Schlüsselwort strictfp hat keine praktische Bedeutung mehr. Das Schlüsselwort native spielt für das vorliegende Tutorial keine Rolle.