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.
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
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.
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.
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. |
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.
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