Java final: Die Java final Variable, Methode & Klasse!

    Avatarbild von Patrick
    Patrick

    veröffentlicht am: 17.06.2022
    zuletzt aktualisiert am: 06.02.2023

    Java final: So arbeiten mit wir mit finalen Klassen, Variablen & Methoden!

    Das Java final Schlüsselwort ist ein sogenannter non-access modifier, welcher zur Initialisierung einer Variable, zur Erstellung einer Klasse oder einer Methode verwendet wird. Es schränkt den Zugriff auf die Variable, die Methode oder die Klasse ein. Es ist nicht möglich, den Wert einer finalen Variablen zu ändern, die finale Klasse zu erweitern oder eine finale Methode außer Kraft zu setzen.

    Die finale Klasse, die finale Methode und die finalen Variablen (engl. Variables) werden geschaffen, um einen Missbrauch dieser Instanzen im Code zu vermeiden. Dieser Artikel bietet einen detaillierten Überblick über das Keyword Java final mit den folgenden Lernzielen:

    • Wie erstellt man eine Java final Variable?
    • Wie erstellt man eine Java final Methode?
    • Wie erstellt man eine Java final Klasse?

    Wie wird das Schlüsselwort Java final verwendet?

    Wie bereits erwähnt, erzeugt das Schlüsselwort final einen bestimmten Typ von Variablen, Klassen oder Methoden. In diesem Abschnitt werden verschiedene Beispiele aufgeführt, um die Verwendung von Java final zu veranschaulichen.

    Wie erstellt man eine Java final Variable?

    Eine final-Variable kann verwendet werden, wenn die Variable besonders wichtig ist und die Änderung ihres Wertes ihre Bedeutung im Programm verändern kann. Der folgende Java-Code initialisiert eine final-Variable in Java und demonstriert den Zweck der final-Variable.

    final int meinAlter = 24;
    // Den Wert der final-Variable ändern 
    meinAlter = 25;

    In dem obigen Code ist die Variable meinAlter als final deklariert.

    Ausgabe auf der Konsole:

    Wir haben nun das Beispiel vom User / Nutzer, wo wir das Java final keyword verwenden!

    Wenn das Programm ausgeführt wird, gibt der Compiler ebenfalls einen Fehler aus, wie in der obigen Abbildung zu sehen ist, da wir versuchen den Wert der finalen Variable meinAlter zu verändern.

    Kann man auch eine leere final Variable erstellen?

    Java erfordert die Initialisierung von Variablen, bevor sie verwendet werden. Eine leere final-Variable wird nur deklariert und man muss sie in einem Klassenkonstruktor initialisieren. Hier deklarieren wir eine finale Variable und initialisieren sie in einem Java Konstruktor mit folgendem Code.

    class FinalKlassenbeispiel {
        final String willkommensNachricht;
        FinalKlassenbeispiel() {
            willkommensNachricht = "Willkommen zu codegree!";
        }
        public static void main(String[] args) {
            FinalKlassenbeispiel meinCoolesObjekt = new FinalKlassenbeispiel();
            System.out.println(meinCoolesObjekt.willkommensNachricht);
        }
    }

    Im obigen Code,

    • wird eine finale String-Variable in der Klasse (FinalKlassenbeispiel) deklariert
    • ein Konstruktor der Klasse wird erstellt, in dem die finale String-Variable initialisiert wird
    • die Methode main erstellt ein Objekt (meinCoolesObjekt) der Klasse (FinalKlassenbeispiel), um auf den Konstruktor zuzugreifen
    • der Wert der Variablen willkommensNachricht wird ausgegeben

    Ausgabe auf der Konsole:

    Dieses Beispiel (engl. Example) setzt den Wert (engl. Value) des Strings auf "Willkommen zu codegree!"

    Die Ausgabe zeigt, dass der Wert der finalen Variable auf der Konsole ausgegeben wurde.

    Wie erstellen wir finale Methoden in Java?

    Der Zweck der finalen Methode besteht darin, einen Missbrauch der Methode zu vermeiden, da die Möglichkeit besteht, dass die Methode in der untergeordneten Klasse eine andere Bedeutung haben kann.

    Schauen wir uns nun einige Beispiele an. Wir können finale Methoden folgendermaßen erstellen:

    class Grossmutter {
        // Die finale Methode 
        public final void werBinIch() {
            System.out.println("Ich bin die Grossmutter");
        }
    }
    class Mutter extends Grossmutter {
        // Wie versuchen die finale Methode zu überschreiben	
        public final void werBinIch() {
            System.out.println("Ich bin die Mutter");
        }
    }
    class Enkelkind {
        public static void main(String[] args) {
            Mutter meineMutter = new Mutter();
            Mutter.werBinIch();
        }
    }

    Im obigen Code,

    • enthält eine Klasse namens Grossmutter eine Methode werBinIch(), die mit dem Schlüsselwort final deklariert ist.
    • die Klasse Mutter erweitert Grossmutter und versucht, die Methode werBinIch() außer Kraft zu setzen
    • die main-Methode wird in Einzelkind verwendet, das versucht, auf die Methode werBinIch() zuzugreifen.

    Ausgabe auf der Konsole:

    Wenn das Programm ausgeführt wird, zeigt es außerdem den Fehler an, der im obigen Bild zu sehen ist.

    Wie erstellt man eine finale Klasse in Java?

    Eine Klasse wird in der Regel so implementiert, dass die Variablen (also das einzelne Attribut / die Attribute) oder Methoden auch in der Unterklasse / Kinderklasse verwendet werden können. Man kann die Klasse jedoch einschränken, indem man das Schlüsselwort final verwendet. Eine finale Klasse wird deklariert, wenn man dieser Klasse nicht erlaubt, ihre Eigenschaften auf eine andere Klasse zu erweitern. Das Konzept von finalen Klassen widerspricht dem Muster der Objektorientierten Programmierung, da weder die Methoden noch die enthaltenen Attribute der Klasse von Unterklassen überschrieben werden kann.

    Der unten stehende Java-Code wird zur Erstellung einer finalen Klasse verwendet.

    final class FinaleKlasse {
        public void unsereNachricht() {
            System.out.println("Eine Methode innerhalb der final-Klasse");
        }
    }
    class ZweiteKlasse extends FinaleKlasse {
        public void unsereNachricht() {
            System.out.println("Die Methode ist in der Unterklasse!");
        }
    }
    public class Main {
        public static void main(String[] args) {
            ZweiteKlasse meineZweiteKlasse = new ZweiteKlasse();
            meineZweiteKlasse.unsereNachricht();
        }
    }

    Im obigen Code,

    • enthält die erste Klasse (FinaleKlasse) eine unsereNachricht()-Methode
    • eine andere Klasse (ZweiteKlasse) erweitert die unsereNachricht()
    • die letzte Klasse (Main) enthält die main-Methode
    • ein Objekt der ZweiteKlasse wird erstellt und in der Hauptklasse (Main) aufgerufen

    Ausgabe auf der Konsole:

    Zuletzt können wir auch mit Java final sogenannte finale Klassen erstellen!

    Wenn das Programm ausgeführt wird, wird ein Fehler auf der Konsole ausgegeben.

    Zusammenfassung: Das Schlüsselwort Java final!

    Das final-Schlüsselwort kann verwendet werden, um eine Variable, eine Klasse oder eine Methode zu erstellen. Das Schlüsselwort final schränkt dabei die Verwendung von Variablen, Klassen und Methoden ein. Dieser Artikel bietet einen tiefen Einblick in das Schlüsselwort final in Java. Außerdem haben wir anhand von Beispielen gezeigt, wie das Schlüsselwort final zur Initialisierung von Variablen, Methoden und Klassen verwendet werden kann. Wenn du mehr über Java lernen möchtest, schau dir unser großes Tutorial zu diesem Thema an!

    😩 Gelangweilt von den Udemy & YouTube-Tutorials?!

    Lerne spielerisch Java und komme deiner gutbezahlten (und an der 🌴 liegenden) Traumkarriere einen Schritt weiter.

    TP Star TP Star TP Star TP Star TP Star

    "Für Leute die gerne Python oder Java lernen wollen ist Codegree klasse. Ist nicht wie bei anderen Konkurrenten auf Videokursen aufgebaut..."

    - Lennart Sparbier

    100% kostenlos registrieren · keine Kreditkarte notwendig

    👋 Wir warten bereits auf dich!

    Lerne das, was du wirklich brauchst.

    Im Gegensatz zu der Abendschule oder der alteingesessenen Uni lernst du bei codegree die Sprachen & Pakete, die wirklich im Jobmarkt gesucht werden.

    Logo von Python
    Logo von PyTorch
    Logo von Pandas
    Logo von Matplotlib
    Logo von Java
    Logo von NumPy
    Mehr erfahren

    100% kostenlos registrieren · keine Zahlungsdaten notwendig