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.
Uma variável final deve ser inicializada quando for declarada ou em um construtor se for uma variável de instância.
publicclassFinalInitialization{
final int MAX_VALUE;publicFinalInitialization(){MAX_VALUE=100;}}Tecnologia
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.
classParent{public final voiddisplay(){
System.out.println("This is a final method.");}}Tecnologia
3. final Classes
Uma classe final não pode ser subclasse, o que impede a herança.
public final classFinalClass{// Class implementation}Tecnologia
Exemplos
Exemplo 1: final Variável
publicclassFinalVariableExample{publicstaticvoidmain(String[] args){
final int MAX_VALUE=100;
System.out.println("MAX_VALUE: "+MAX_VALUE);// MAX_VALUE = 200; // This will cause a compilation error}}Tecnologia
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
classParent{public final voiddisplay(){
System.out.println("This is a final method.");}}classChildextendsParent{// public void display() { // This will cause a compilation error// System.out.println("Attempting to override.");// }}publicclassFinalMethodExample{publicstaticvoidmain(String[] args){
Child obj =newChild();
obj.display();}}Tecnologia
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 classFinalClass{publicvoidshow(){
System.out.println("This is a final class.");}}// class SubClass extends FinalClass { // This will cause a compilation error// }publicclassFinalClassExample{publicstaticvoidmain(String[] args){
FinalClass obj =newFinalClass();
obj.show();}}Tecnologia
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.
publicclassFinalStaticExample{publicstatic final double PI=3.14159;}Tecnologia
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.
A palavra-chave
finalem 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.
finalVariáveisUma variável
finalé uma constante; uma vez inicializada, seu valor não pode ser alterado.Inicialização de
finalVariáveisUma variável
finaldeve ser inicializada quando for declarada ou em um construtor se for uma variável de instância.2.
finalMétodosUm método
finalnão pode ser substituído por subclasses, o que garante que a implementação do método permaneça inalterada.3.
finalClassesUma classe
finalnão pode ser subclasse, o que impede a herança.Exemplos
Exemplo 1:
finalVariávelNeste exemplo,
MAX_VALUEé uma variávelfinal. A tentativa de reatribuí-lo resultará em um erro de compilação.Exemplo 2:
finalMétodoAqui, o método
displayna classeParentestá marcado comofinal, impedindo que ele seja substituído na classeChild.Exemplo 3:
finalClasseNeste exemplo,
FinalClassé declarado comofinal, o que significa que não pode ser estendido por nenhuma outra classe.Dicas e práticas recomendadas
finalpara criar constantes e garantir que seus valores permaneçam inalterados durante todo o programa.finalpara evitar que as subclasses alterem métodos críticos, o que pode ajudar a manter a segurança e a consistência.finalpara 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.finalpode ajudar o compilador Java e o compilador JIT a otimizar o código, pois fornece mais informações sobre a invariabilidade do valor.