Diferença entre estático e final em Java

Diferença de chave - estática 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 definidas pelo usuário., etc. 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. o diferença chave entre estático 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 herdada.

CONTEÚDO

1. Visão geral e principais diferenças
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ática vs final em Java em forma de tabela
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 variáveis ​​numéricas e 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 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 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 variável pode ser alterado para 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 outro valor porque é declarado como final. Java suporta programação orientada a objetos (OOP). Um pilar da OOP é um polimorfismo. Um tipo de polimorfismo é predominante. A classe A possui o método de exibição. A classe B estende a classe A e possui seu próprio método de exibição. Ao criar um objeto do tipo B e chamar o método de exibição, 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 não 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 apresentará 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. 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, 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?

  • Estática e final são palavras-chave em Java.

Qual é a diferença entre estático e final em Java?

estático vs final em Java

A palavra-chave estática indica que uma variável membro ou método pode ser acessada sem exigir uma instanciação da classe à qual pertence. A palavra-chave final indica uma entidade que pode ser atribuída apenas 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.

Sumário - estático vs final em Java

Este artigo discutiu duas palavras-chave em Java, como estática e final. A diferença entre estático e final em Java é que estático é 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.

Referência:

1.O que é palavra-chave estática em Java | método estático e variável estática, Telusko Learnings, 6 de março de 2015. Disponível aqui  
2.7.16 Como usar o bloco estático no tutorial em Java, Telusko Learnings, 30 de abril de 2015. Disponível aqui
3.8.13 Como usar a palavra-chave final em Java | Método, classe e variável, Telusko Learnings, 26 de fevereiro de 2015. Disponível aqui