Pular para o conteúdo principal
Documentos
Palavras-chave JavaMatrizes JavaProgramação orientada a objetos em JavaManuseio de arquivos JavaIntrodução ao JavaNoções básicas da linguagem Java

Palavra-chave final em Java

A palavra-chave final em Java é um modificador sem acesso que pode ser aplicado a variáveis, métodos e classes. É usado para impedir que o usuário modifique ainda mais a entidade à qual é aplicado. Essa palavra-chave desempenha um papel fundamental para garantir a imutabilidade e impedir a herança ou a substituição de métodos.

Uso

1. final Variáveis

Uma variável final é uma constante; uma vez inicializada, seu valor não pode ser alterado.

final int MAX_VALUE = 100;

Inicialização de final Variáveis

Uma variável final deve ser inicializada quando for declarada ou em um construtor se for uma variável de instância.

public class FinalInitialization {
    final int MAX_VALUE;

    public FinalInitialization() {
        MAX_VALUE = 100;
    }
}

2. final Métodos

Um método final não pode ser substituído por subclasses, o que garante que a implementação do método permaneça inalterada.

class Parent {
    public final void display() {
        System.out.println("This is a final method.");
    }
}

3. final Classes

Uma classe final não pode ser subclasse, o que impede a herança.

public final class FinalClass {
    // Class implementation
}

Exemplos

Exemplo 1: final Variável

public class FinalVariableExample {
    public static void main(String[] args) {
        final int MAX_VALUE = 100;
        System.out.println("MAX_VALUE: " + MAX_VALUE);
        // MAX_VALUE = 200; // This will cause a compilation error
    }
}

Neste exemplo, MAX_VALUE é uma variável final. A tentativa de reatribuí-lo resultará em um erro de compilação.

Exemplo 2: final Método

class Parent {
    public final void display() {
        System.out.println("This is a final method.");
    }
}

class Child extends Parent {
    // public void display() { // This will cause a compilation error
    //     System.out.println("Attempting to override.");
    // }
}

public class FinalMethodExample {
    public static void main(String[] args) {
        Child obj = new Child();
        obj.display();
    }
}

Aqui, o método display na classe Parent está marcado como final, impedindo que ele seja substituído na classe Child.

Exemplo 3: final Classe

public final class FinalClass {
    public void show() {
        System.out.println("This is a final class.");
    }
}

// class SubClass extends FinalClass { // This will cause a compilation error
// }

public class FinalClassExample {
    public static void main(String[] args) {
        FinalClass obj = new FinalClass();
        obj.show();
    }
}

Neste exemplo, FinalClass é declarado como final, o que significa que não pode ser estendido por nenhuma outra classe.

Dicas e práticas recomendadas

  • Imutabilidade: Use as variáveis final para criar constantes e garantir que seus valores permaneçam inalterados durante todo o programa.
  • Segurança: Use os métodos final para evitar que as subclasses alterem métodos críticos, o que pode ajudar a manter a segurança e a consistência.
  • Design: Use as classes final para impedir a herança ao projetar classes imutáveis ou quando você quiser garantir que a implementação da classe não possa ser alterada.
  • Variáveis finais estáticas: Ao contrário das variáveis finais de instância, as variáveis finais estáticas não podem ser atribuídas por meio de construtores. Normalmente, eles são inicializados em sua declaração.
    public class FinalStaticExample {
        public static final double PI = 3.14159;
    }
  • Desempenho: Em alguns casos, o uso de final pode ajudar o compilador Java e o compilador JIT a otimizar o código, pois fornece mais informações sobre a invariabilidade do valor.

Learn Java Essentials

Desenvolva suas habilidades em Java desde o início e domine os conceitos de programação.
Comece a aprender de graça