abstract
- Vorgeben einer Klassenstruktur
- keine konkrete Instantiierung eines Objekts erlaubt
- ableiten einer Unterklasse -> instantiieren der Objekte
final
- Ableiten von Unterklassen nicht möglich
- Überschreiben von Methoden nicht möglich
strictfp (1.2)
- Deaktivieren der erweiterten Gleitpunkt-Darstellung
(nach IEEE 754 mindestens 43 bzw. 79 Bit) in allen
Methoden der Klasse
final
- Methode nicht überschreibbar
static
- Klassenmethoden
- gelten implizit als final und können nicht überschrieben werden
- es kann nur auf Datenelement und Methoden zugegriffen werden
die ebenfalls static sind.
- es ist Möglich auf solche Methoden via Objekt zuzugreifen.
=> jedoch nicht empfehlenswert (schlechte Lesbarkeit des
Programms)
native
- Einbinden von Programmcode einer anderen
Programmiersprache
synchronized
- Wichtig bei Verwendung mehrerer Threads (Details bei
Bedarf später)
abstract
- nur in abstract Klassen erlaubt
- legen lediglich die Aufrufstruktur fest nicht die Implementierung
strictfp (1.2)
- die erweiterte Gleitpunkt-Darstellung wird deaktiviert.
final
- Deklaration von Konstanten
- Wertzuweisung nur einmal möglich
public class FinalDemo {
final int x = 100; // "normale" Konstante
final String s; // leeres Final
// Zuweisung zur Laufzeit im Konstruktor
public FinalDemo(String s) {
this.s = s;
}
// statisches leeres Final
final static int staticFinal;
// Zuweisung beim Laden der Klasse
// in statischer Initalisierung
static {
staticFinal = 111;
}
}
|
static
- Datenelement ist allen Exemplaren der Klasse zugeordnet
- physikalisch für alle Objekte einer Klasse gleich
- solche Variablen werden auch Klassenvariablen genannt
volatile
- bei Zugriff aus mehreren Threads wichtig (genaueres bei
bei Bedarf beim Thema Threads)
transient
- Solche Daten werden beim Speichern via ObjectOutputStream
nicht gespeichert
- Stichwort: Serialisierung / Streams