final – słowo kluczowe w języku programowania Java, które zależnie od użytego kontekstu oznacza niezmienność deklarowanego elementu.
Zmienne finalne Zmiennej finalnej można tylko raz przypisać wartość co z reguły ma miejsce podczas jej deklaracji. Należy zwrócić uwagę, że w przypadku zmiennej reprezentującej obiekt wartością tej zmiennej jest wartość tej referencji – nie zaś sam obiekt. Oznacza to, że oznaczenie referencji jako finalnej nie oznacza, że stan obiektu na który ta referencja wskazuje nie może zostać zmieniony, a jedynie że samej zmiennej nie można przypisać drugi raz referencji do obiektu – choćby nawet tego samego.
Przykład: public class MyProgram {
public static void main( String[] args ) { // Deklaracja zmiennej finalnej i przypisanie wartości final int x = 2;
// Niepoprawne: próba ponownego przypisania wartości. // x = 6;
final Sphere s; s = new Sphere( 1 );
// Zmiana stanu obiektu - poprawne gdyż final nie dotyczy niezmienności stanu obiektu s.radius = 123;
// Niepoprawne - próba ponownego przypisania wartości polu finalnemu w klasie Sphere: // s.id = 2;
// Niepoprawne próba ponownego przypisania referencji innego obiektu zmiennej lokalnej s // s = new Sphere( 3 );