Key Difference – estático vs final em Java
Cada linguagem de programação tem uma sintaxe específica. O programador deve seguir essas sintaxes ao escrever programas. As palavras-chave das linguagens de programação possuem significados específicos de acordo com as tarefas. Eles são fornecidos pela linguagem de programação e não podem ser usados para variáveis definidas pelo usuário, métodos, classes, etc. O static e o final são duas palavras-chave em Java. Este artigo discute a diferença entre estático e final em Java. A principal diferença entre static e final em Java é que static é usado para definir o membro da classe que pode ser usado independentemente de qualquer objeto da classe, enquanto final é usado para declarar uma variável constante ou um método que não pode ser substituído ou uma classe que não pode ser herdado.
O que é estático em Java?
Uma classe consiste em membros de dados (atributos) e métodos. Para chamar os métodos, deve haver um objeto dessa classe específica. Quando um método é declarado como estático, não é necessário criar um objeto para chamar esse método. O método pode ser chamado usando o nome da classe. Consulte o programa abaixo.
Figura 01: Programa Java com variáveis estáticas e Método estático
De acordo com o programa acima, a classe A contém a variável numérica e o método de exibição. Ambos são membros estáticos. Portanto, não é necessário criar um objeto para acessar a variável numérica e o método de exibição. O programador pode escrever diretamente o nome da classe para imprimir o número e chamar o método de exibição. Portanto, não há necessidade de instanciar um objeto. Se a variável number e o método de exibição não forem estáticos, deve haver um objeto do tipo A.
Figura 02: Uso do Bloco estático
O programa acima contém o bloco estático e o método main. O bloco estático é chamado quando a classe é carregada. Portanto, a instrução no bloco estático é executada antes da instrução no bloco principal. Se houver muitos blocos estáticos, eles serão executados em sequência.
O que é final em Java?
No programa, podem existir variáveis de vários tipos. Se houver uma variável como int x=1; posteriormente no programa, esse valor de variável pode ser alterado para algum outro valor. Uma variável declarada como final e inicializada com um valor não pode ser alterada posteriormente no programa.
Figura 03: Programa com variável final e herança
De acordo com o programa acima, x é uma variável final. É atribuído um valor 5. Não pode ser alterado algum outro valor porque é declarado como final. Java suporta programação orientada a objetos (OOP). Um pilar da POO é um polimorfismo. Um tipo de polimorfismo é de sobreposição. A classe A tem o método de exibição. A classe B estende a classe A e tem seu próprio método de exibição. Ao criar um objeto do tipo B e chamar o método display imprimirá “B” como saída. O método de exibição da classe A é substituído pelo método de exibição da classe B.
Se o programador quer evitar sobrescrever um método, então ele pode usar a palavra-chave final para aquele método. Se o método de exibição na classe A for final, o método de exibição em B dará um erro porque esse método não pode ser substituído.
Figura 04: palavra-chave final no Método
Outro pilar da POO é a herança. Ajuda a reutilizar o código já existente. A nova classe pode se estender da classe existente e usar os membros de dados e métodos da classe existente. Se for necessário parar de herdar uma classe, o programador pode usar a palavra-chave ‘final’. Consulte o programa abaixo.
Figura 05: palavra-chave final na classe
De acordo com o programa acima, a classe A é declarada como final. Quando a classe B estende A, dá um erro porque a classe A é declarada como final. Não pode ser herdado por outras classes.
Qual é a semelhança entre static e final em Java?
Tanto static quanto final são palavras-chave em Java
Qual é a diferença entre static e final em Java?
estático vs final em Java |
|
Palavra-chave estática indica que uma variável de membro, ou método, pode ser acessada sem exigir uma instanciação da classe à qual ela pertence. | A palavra-chave final denota uma entidade que só pode ser atribuída uma vez. |
Variáveis | |
As variáveis estáticas podem ser reinicializadas. | As variáveis finais não podem ser reinicializadas. |
Métodos | |
Pode ser chamado por outros métodos estáticos e acessar apenas os membros estáticos da classe. | Os métodos finais não podem ser substituídos. |
Class | |
O objeto de classe estática não pode ser criado. Ele contém apenas membros estáticos. | A classe final não pode ser herdada por outras classes. |
Bloco | |
A palavra-chave static pode ser usada em um bloco. | A palavra-chave final não é usada com um bloco. |
Resumo – estático vs final em Java
Este artigo discutiu duas palavras-chave em Java, como static e final. A diferença entre static e final em Java é que static é usado para definir o membro da classe que pode ser usado independentemente de qualquer objeto da classe enquanto final é usado para declarar uma variável constante ou um método que não pode ser substituído ou uma classe que não pode ser herdado.