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 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.
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.
Static representa uma variável comum a todos os objetos que instanciam uma determinada classe enquanto final define a constante.
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.
A final não pode ser expandida, ou seja, não permite subclasses. A estática não se aplica à classe.
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.