Java 1
  • Home
  • Tutorials
    • Hello World
      • Download
      • Installation unter Windows
      • Installation unter Linux
      • Das Hello World Programm
      • Mehr Java
    • Java Konsole
      • Java Konsole Testen
    • Basic Java
      • Java Programme
        • Die Klasse
        • Datentypen
        • Null
        • Casten
        • Operatoren
        • Kontrollstrukturen
        • Arrays
        • Aufgaben
      • Objektorientierte Konzepte
        • Hallo Fenster
        • Objekte einer Klasse
        • Vererbung
        • Interfaces
      • Alles über Klassen
        • Abstrakte Klassen
        • Methoden überschreiben
        • Super
        • Final
        • Innere Klassen
        • Anonyme Klassen
        • Enumerations
      • You're just an object
        • Sichtbarkeit
        • Druckdarstellung
        • Gleichheit
        • Klonen
        • Die Class
        • Serialisierung
    • Java Api
      • Dokumentation
      • Strings
      • Wrapper Klassen
      • System und Runtime
      • Math
      • Exceptions
      • IO
      • Sammlungsklassen
      • AWT und Swing
      • Alle Komponenten
      • Applets
      • Threads
      • Jar
      • Classpath
    • JSP und Servlets
      • Meine erste JSP
        • Downloads
        • Installation unter Windows
        • Installation unter Linux
        • Admin und Manager
        • Webapplication
      • JSP
        • Java Code in HTML einbinden
        • Das HTTP Request - Response Modell
        • Request und Response Objekte
        • Auswerten von Formulardaten
        • Aufgaben
      • Beans
        • Die Session
        • Weitere vordefinierte Objekte
        • Java-Beans
        • Beans programmieren
        • Java-Beans in JSP nutzen
        • Aufgaben
      • Servlets
        • Nutzen der Servlets
        • Servlets programmieren
        • Servlets auf dem Server einrichten
        • Servlets mit JSP
        • Servlets includen
        • Aufgaben
      • Webapplikation
        • Filter
        • Initialisierungsparameter
        • Error Pages
        • Passwortgeschützte Verzeichnisse
        • Bibliotheken nutzen
        • Eine Webapplikation deployen
        • Ausblick: Wie geht's weiter?
        • JSP-Tags Syntaxreferenz
        • Aufgaben
  • Code
    • Web
      • Datenbankverbindungen mit Tomcat
      • Texte richtig encoden
      • HTTPS mit Tomcat
      • HTML Encoden mit Javascript
    • Java
      • Print F
      • Ein generischer Poolbuilder
      • Native Bibliotheken
      • Unique Ids
    • Java FX
      • Balls
      • Hearts
      • Planner
    • Java ME
      • The Next Big Thing
    • System
      • Vi Kommandos
  • Sidemap
  • Impressum
  • Hilfe
Home > Tutorials > Basic Java > Alles über Klassen > Final
  • Home
  • Tutorials
    • Hello World
    • Java Konsole
    • Basic Java
      • Java Programme
      • Objektorientierte Konzepte
      • Alles über Klassen
        • Abstrakte Klassen
        • Methoden überschreiben
        • Super
        • Final
        • Innere Klassen
        • Anonyme Klassen
        • Enumerations
      • You're just an object
    • Java Api
    • JSP und Servlets
  • Code
  • Sidemap
  • Impressum
  • Hilfe

Final

Während wir mit abstract das Erweitern einer Klasse geradezu erzwingen, können wir es durch das Schlüsselwort final verhindern. Von finalen Klassen darf nicht abgeleitet werden, eineKlasse 

class MyString extends String {  // FEHLER!!
}

wird man in Java nicht zum Leben erwecken können (resp. zum Kompilieren bringen).  java.lang.String ist eine finale Klasse. Finale Klassen sollten zur Laufzeit etwas schneller geladen werden als nicht finale Klassen. Der Hauptgrund für ihre Verwendung dürfte aber sein, dass man die Implementierung gegen Veränderung schützen möchte.

Wenn eine Klasse final ist, heißt das nicht, dass ihre Felder nicht verändert werden können.

Methoden können ebenfalls final sein. In diesem Fall dürfen sie in abgeleiteten Klassen nicht überschrieben werden. Der Grund ist wie bei Klassen, dass man eine bestimmte Implementierung schützen will.

Am häufigsten finden wir das Schlüsselwort final bei Feldern (Variablen). Finale Felder dürfen nach der Definition nicht verändert werden!

final int i; // Deklaration
i=0; // Definition, aber ab jetzt darf i nicht verändert werden.
i++; // FEHLER!!

Final wird auch benutzt, um Konstanten zu definieren. In der Tat ist dies die einzige Möglichkeit, in Java Konstanten zu definieren. Echte Konstanten definiert man „public static final“ und benennt sie wie dargestellt mit Grossbuchstaben:

public static final String ERROR_MESSAGE="Es ist ein Fehler aufgetreten!";

Konstanten werden vom Compiler anders behandelt als Variablen, so dass man dem Compiler ruhig mitteilen sollte, wenn eine Variable nicht verändert wird. 

Final kommt auch gelegentlich in der Methodensignatur vor:

public void doSomething(final int val) {...

zeigt an, dass die Variable „val“ in der Methode nur gelesen, aber nicht verändert wird.

« Super
Alles über Klassen
Innere Klassen »
Show/Hide Footer Actions

Kommentare:

Sie müssen angemeldet sein um eine Nachricht zu erstellen. Anmelden »
© 2012 Java 1. Alle Rechte vorbehalten.
Anmelden
concrete5 - open source CMS
Theme by Site5 / Mnkras.