Diferença chave - estático vs final em Java
Cada linguagem de programação possui uma sintaxe específica. O programador deve seguir essas sintaxes ao escrever programas. As palavras-chave das linguagens de programação têm 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, métodos, classes, etc. definidos pelo usuário. O estático 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.
CONTEÚDO
1. Visão geral e diferença principal
2. O que é estático em Java
3. O que é final em Java
4. Semelhanças entre estático e final em Java
5. Comparação lado a lado - estático versus final em Java em formato tabular
6. Resumo
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 a exibição do método. Portanto, não há necessidade de instanciar um objeto. Se a variável numérica e o método de exibição forem não estáticos, deve haver um objeto do tipo A.
Figura 02: Uso de bloco estático
O programa acima contém o bloco estático e o método principal. 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, pode haver 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 que é 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 nenhum outro valor porque é declarado como final. Java oferece suporte à programação orientada a objetos (OOP). Um pilar da OOP é um polimorfismo. Um tipo de polimorfismo é predominante. 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 de exibição, será impresso “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 quiser evitar a substituição de um método, ele poderá usar a palavra-chave final para esse 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 OOP é a herança. Isso ajuda a reutilizar o código já existente. A nova classe pode estender a partir 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 da aula
De acordo com o programa acima, a classe A é declarada como final. Quando a classe B estende A, ocorre um erro porque a classe A é declarada como final. Não pode ser herdado por outras classes.
Qual é a semelhança entre estático e final em Java?
Static e final são palavras-chave em Java
Qual é a diferença entre estático e final em Java?
Artigo Diff meio antes da tabela
estático vs final em Java |
|
A 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 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. |
Classe | |
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. |
Quadra | |
A palavra-chave estática 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.