Zertifizierung für Java 2 Plattform 1.4: Keywords

abstract Bearbeiten

Dieses Schlüsselwort kann sowohl auf Methoden als auch auf Klassen angewendet werden und symbolisiert jeweils, dass die Methode/Klasse noch nicht (fertig) implementiert ist.

Von abstrakten Klassen können keine Objekte erzeugt werden. Dennoch ist es möglich für abstrakte Klassen einen Konstruktor zu definieren. Dieser kann nicht von außerhalb benutzt werden, sondern ausschließlich von Subklassen.

Eine abstrakte Methode besteht nur aus der Methodensignatur, also dem Zugriffsmodifizierer, dem Rückgabetyp, der Argumentenliste und den Exceptions, die die Methode werfen kann. Sie enthält aber im Gegensatz zu einer normalen Methode keinen Methodenkörper.

In Interfaces sind alle Methoden implizit als public abstract definiert. Klassen, die abstrakte Methoden beinhalten, diese aber nicht implementieren, müssen auch als abstract definiert werden.

assert Bearbeiten

Testet Bedingungen der Form 'assert string != null : "Fehlermeldung";' Asserts müssen durch VM-Parameter eingeschaltet werden und lösen einen harten Abbruch aus.

break Bearbeiten

Das Schlüsselwort break kann

  • in Schleifen angewendet werden, um die Abarbeitung der Schleife vorzeitig abzubrechen.
  • in switch/case Anweisungen ermöglichen nur bestimmte cases auszuführen. Würde break nicht aufgerufen, wird der zu überprüfende wert mit den nächsten cases trotzdem verglichen:
int value = 1;
switch (value) {
case 1:
	anweisung1();
	break; // <- richtig
case 2:
	anweisung2(); // (in der regel) falsch. Nachdem anweisung2() ausgeführt wurde, wird die 
                      // variable value trotzdem noch mit case3 verglichen, da kein break
                      // aufgerufen wird
case 3:
	anweisung3();
default:
	break;
}

case Bearbeiten

Definiert einen Fall innerhalb einer switch/case Anweisung

catch Bearbeiten

"Fängt" einen Fehler innerhalb einer try/catch-Anweisung

class Bearbeiten

const Bearbeiten

Reserviertes Schlüsselwort ohne Funktionalität.

continue Bearbeiten

Ermöglicht es, den aktuellen Schleifendurchlauf zu beenden und die Schleifenbedingung erneut auszuwerten.

default Bearbeiten

do Bearbeiten

else Bearbeiten

extends Bearbeiten

final Bearbeiten

finally Bearbeiten

for Bearbeiten

goto Bearbeiten

Reserviertes Schlüsselwort ohne Funktionalität.

if Bearbeiten

implements Bearbeiten

Ein Beispiel (dabei ist alles was in den eckigen Klammern steht optional):

public class MeineKlasse extends SuperKlasse implements MeinInterface1[, MeinInterface2, ..., MeinInterfaceN] {...}

Klassen die dieses Schlüsselwort in der Signatur enthalten, implementieren mindestends ein Interface. Dies dient der Polymorphie, denn nun ist es möglich, Objekte vom Typ MeineKlasse auch als Objekte vom Typ MeinInterface1, MeinInterface2 etc. aufzufassen.

Im Regelfall werden alle Methoden aller angegebenen Interface von der Klasse auch implementiert. Sollte dies nicht der Fall sein, so muss die Klasse als abstract definiert werden. Außerdem sind nun auch alle Konstanten aus allen Interfaces für die implementierende Klasse definiert. Prominentes Beispiel hierfür ist das Interface javax.swing.SwingConstants. Allerdings ist von solchen Konstantensammlungen abzuraten, da Interfaces eigentlich neue Typen definieren sollen.

import Bearbeiten

instanceof Bearbeiten

interface Bearbeiten

native Bearbeiten

new Bearbeiten

null Bearbeiten

package Bearbeiten

Kann statisch deklariert werden.

private Bearbeiten

private ist ein Zugriffsmodifizierer für Klassen, Felder und Methoden. Er stellt die niedrigste Sichtbarkeitsstufe dar. Mit private deklarierte Klassen, Felder und Methoden können nur innerhalb der definierenden Klasse gesehen werden. Dies impliziert für Klassen, dass diese nur als private deklariert werden können, wenn es innere Klassen oder statische Klassen sind.

protected Bearbeiten

public Bearbeiten

return Bearbeiten

short Bearbeiten

static Bearbeiten

strictfp Bearbeiten

Ausdrücke, die als strictfp gekennzeichnet sind, werden nicht nach der erweiterten Gleitpunktdarstellung IEEE 754-1985 behandelt. Unabhängig von der Genauigkeit, die die JVM oder die Hardware zur Verfügung stellt (für double-Werte anstatt 64 Bit oft 80 Bit), wird also bei diesen Ausdrücken streng mit 64 Bit bzw. 32 Bit gerechnet. Dies soll die Portabilität zwischen verschiedenen Plattformen gewährleisten. Ein Ausdruck ist nur dann nicht FP-strict, falls der Ausdruck nicht compiletime-konstant ist und er nicht in einer als strictfp deklarierten Klasse, Methode oder Interface enthalten ist. Siehe dazu http://java.sun.com/docs/books/jls/second_edition/html/expressions.doc.html Paragraph 15.4

super Bearbeiten

switch Bearbeiten

Bedingte Verzweigung zu mehreren Zielen. Entspricht in etwa einer Liste von if oder if/else if-Anweisungen.

synchronized Bearbeiten

this Bearbeiten

throw Bearbeiten

throws Bearbeiten

transient Bearbeiten

Das Schlüsselwort transient weist den Compiler an, dieses Feld (aus dem Englischen 'field' für Variable) beim Serialisieren nicht zu berücksichtigen. Wird also ein Objekt mit einem derartigen Feld serialisiert, so erhält das entsprechende Feld beim deserialisieren den Standardwert.

try Bearbeiten

try ermöglicht einem Codeabschnitt, gesichert eine Exception zu werfen. Die Fehlerbehandlung findet innerhalb des catch-Blockes statt

void Bearbeiten

volatile Bearbeiten

Das Schlüsselwort volatile wird für die Programmierung mit mehreren Threads benutzt. Da Threads ihre eigenen Kopien von Variablen besitzen dürfen, kann es passieren, dass ein Thread mit bereits veralteten Variablenwerten arbeitet. Das Schlüsselwort volatile verhindert dies, indem es die JVM anweist, die Variable bei jedem Lese- und Schreibzugriff mit dem Hauptspeicher zu synchronisieren. Dies gilt auch für long- und double-Variablen. Siehe dazu http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#36930 Paragraph 8.3.1.4 sowie http://java.sun.com/docs/books/jls/second_edition/html/memory.doc.html#26250 Paragraph 17.7

while Bearbeiten