Słowo kluczowe final w języku programowania Java pełni kilka ważnych funkcji. Może być używane do oznaczania zmiennych, metod oraz klas, ograniczając ich dalszą modyfikację, nadpisywanie lub dziedziczenie. Użycie final może poprawić bezpieczeństwo i projektowanie oprogramowania poprzez zapewnienie niezmienności, lepszą wydajność i klarowność kodu.
Przykład użycia słowa kluczowego final
W tym przykładzie przedstawimy klasę SpaceShip, której prędkość maksymalna jest stała i nie może być zmieniona po inicjalizacji. Następnie pokażemy, jak final może być użyte do zapobiegania nadpisywaniu metod w klasach pochodnych.
Klasa SpaceShip
// Klasa SpaceShip z finalną zmienną
public class SpaceShip {
    // Finalna zmienna przechowująca
    // prędkość maksymalną statku kosmicznego
    private final int maxSpeed;
    // Konstruktor przyjmujący prędkość maksymalną
    public SpaceShip(int maxSpeed) {
        this.maxSpeed = maxSpeed;
    }
    // Metoda zwracająca prędkość maksymalną
    public int getMaxSpeed() {
        return this.maxSpeed;
    }
}
Zastosowanie final w metodach
Rozszerzając przykład, dodamy klasę ExplorationShip, która dziedziczy po SpaceShip i próbuje nadpisać metodę getMaxSpeed(), co jest niemożliwe, gdy metoda w klasie bazowej jest oznaczona jako final
// Klasa bazowa
public class SpaceShip {
    // Metoda oznaczona jako final
    public final int getMaxSpeed() {
        return 10000;
    }
}
// Klasa pochodna
public class ExplorationShip extends SpaceShip {
    // Próba nadpisania skutkuje błędem kompilacji
    @Override
    public int getMaxSpeed() {
        return 15000;
    }
}
Ten kod spowoduje błąd kompilacji, ponieważ Java zabrania nadpisywania final metod.
Zastosowanie final w klasach
Ostatnim zastosowaniem final jest zapobieganie dziedziczeniu klas. Oznaczenie klasy słowem kluczowym final sprawia, że nie można utworzyć klasy pochodnej.
// Finalna klasa SpaceShip
public final class SpaceShip {
    // Implementacja klasy
}
// Próba dziedziczenia skutkuje błędem kompilacji
public class CargoShip extends SpaceShip {
    // Implementacja klasy
}
Podsumowanie
Słowo kluczowe final w Java jest potężnym narzędziem, które pomaga w zapewnieniu niezmienności, poprawie bezpieczeństwa oraz zapewnieniu klarowności kodu poprzez ograniczenie nadpisywania i dziedziczenia. Jego zastosowanie w zmiennych, metodach i klasach pozwala na tworzenie bardziej przewidywalnego i łatwiejszego w utrzymaniu kodu. Używanie final może być szczególnie przydatne w dużych projektach, gdzie kontrola nad zmiennością i hierarchią klas jest kluczowa.
Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs video Java w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.
