Diferença entre Final e Estático

Em matemática e ciências, a constante é um termo que denota um certo valor, como 'π', que é um nome prático para o número 3,14159. Java tem seu tipo de constantes. Essas são variáveis ​​que em (a) não pertencem a nenhum objeto e sub (b) não alteram seu valor depois de configuradas. A palavra estática na declaração da variável mostra que a variável não pertence a nenhum objeto. Existe uma palavra-chave semelhante que diz que o valor da variável será definido apenas uma vez e não será alterado. Esta é a palavra-chave final. Essa palavra-chave não se limita a variáveis ​​estáticas, mas pode ser usada com variáveis ​​de instância, variáveis ​​locais e até mesmo com variáveis ​​que são métodos de parâmetro. Ao declarar a variável como final, você mostra a todos que a variável durante a existência terá o mesmo valor. Mais importante, o compilador detectará todas as tentativas de alterar o valor de uma variável assim declarada e a reportará como um erro. Quanto à terminologia Java, a variável declarada como estática e final é chamada de constante.

O que é Final?

O modificador final pode ser usado em vários lugares na linguagem de programação Java. Aqui abordaremos seu uso mais comum. O modificador final pode ser aplicado à declaração de uma variável local, argumento de função e variáveis ​​de membro não estáticas ou estáticas. Nesse contexto, o modificador de variável é convertido em uma constante. O tradutor do idioma de tradução verificará se algum código está tentando modificar o valor e essas tentativas serão sinalizadas como um erro. Aqui está um exemplo.

valor int final = 17;

Variáveis ​​de membro estático com este modificador são usadas como constantes globais; por exemplo, na variável java.lang.Math PI, é declarado exatamente

público final duplo estático PI = 3,14159265358979323846;

Podemos aplicar o modificador final à declaração de função. A função marcada com a final não pode mais ser substituída - essa é sua implementação final. Os métodos abstratos não podem ser declarados finais - o fato de serem abstratos significa que não têm implementação; certamente não pode ser seu estado final. Aqui está um exemplo.

public final int meaningLife ()

retorno 42;

Podemos aplicar o modificador final à declaração da classe. A classe que está marcada com a final não pode mais herdar - essa é sua implementação final. Claramente, a classe abstrata não pode ser final ao mesmo tempo. Aqui está um exemplo

aula final pública fechada

//…

Um dos exemplos de classes finitas é a classe java.lang.String - é finita para que ninguém possa herdá-la e, assim, obter acesso às suas variáveis-membro.

O que é estático?

Variáveis ​​estáticas não pertencem a uma instância específica da classe. As variáveis ​​estáticas pertencem à própria classe e na memória há apenas um local, independentemente do número de cópias dessa classe que são criadas na memória. Variáveis ​​não estáticas pertencem aos espécimes da classe - cada instância da classe possui sua própria cópia dessas variáveis. Variáveis ​​estáticas pertencem à classe - a classe na memória mantém os valores dessas variáveis; portanto, todas as classes de amostra veem o mesmo conteúdo para que possamos considerar variáveis ​​estáticas a serem compartilhadas entre todos os tamanhos de classe. Ao atualizar a variável value, o novo valor será automaticamente visível para todas as instâncias dessa classe. O filtro estático pode ser aplicado a qualquer elemento declarado legalmente dentro de uma classe. No caso de variáveis ​​de associação, a conseqüência é que essas variáveis ​​de membro serão armazenadas na memória apenas em um local. O que acontece se for um método? Ao declarar o método como estático, a mensagem é a mesma: o método relevante não pertence às classes de classes, mas à própria classe. Conseqüentemente, métodos estáticos não receberão uma referência oculta ao objeto sobre o qual são chamados na chamada; nos métodos de referência estáticos, isso não está disponível. De fato, invocar métodos estáticos em todo o objeto é igualmente confuso ao acessar variáveis ​​estáticas de membros consultando esta referência: em ambos os casos, é melhor escrever simplesmente o nome da classe, o ponto e o nome do método de chamada.

Diferença entre Final e Estático

  1. Variável

Static representa uma variável comum a todos os objetos que instanciam uma determinada classe enquanto final define a constante.

  1. Método

Static é um método que é o mesmo para cada objeto da classe - também é chamado de membro da classe, por exemplo. esse é o método principal. O método final não pode ser processado na classe herdada.

  1. Classe

A final não pode ser expandida, ou seja, não permite subclasses. A estática não se aplica à classe.

  1. Valor

Simplificando, final denotou que o valor não pode ser alterado (substituição). O valor estático é definido como seu valor padrão, mas pode ser reinicializado.

Final vs. Estático: Gráfico de comparação

Resumo de Final e Estático

  • A chave do trabalho estático fornece acesso mesmo quando não há objeto (instância). Classes proeminentes são declaradas através da palavra-chave static. Se você não desejar que o valor de algumas alterações seja exibido posteriormente no programa, ou se desejar que o compilador verifique e proíba, você pode alterar essa promessa para a final. Há um bloco estático para a inicialização. O bloco estático para a inicialização é declarado como a chave estática na frente dos colchetes. Esse tipo de bloco é executado uma vez, durante a leitura das classes, e geralmente inicializa os membros estáticos da classe.