final w Java

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.

Scroll to Top