Final significa literalmente "por último, final". Esse significado também é expresso em Java.
O final pode ser usado para modificar variáveis (incluindo atributos de classe, atributos de objeto, variáveis locais e parâmetros formais), métodos (incluindo métodos de classe e métodos de objeto) e classes.
1. Classe de modificação final:
A classe de modificação final significa que essa classe já teve o significado "último e final". Portanto, as classes modificadas com final não podem ser herdadas, ou seja, elas não podem ter suas próprias subclasses.
Se a visão herdar uma classe que foi modificada com o final, poderá ocorrer um erro durante a compilação.
2. Método de modificação final:
O método de modificação final significa que esse método já possui o significado "último, final", ou seja, esse método não pode ser reescrito (vários métodos de modificação final podem ser sobrecarregados).
Uma coisa a observar aqui é que, porque o pré -requisito para a substituição é que a subclasse pode herdar esse método da classe pai, se o método final modificado na classe pai também tiver permissões de controle de acesso privado,
Este método não pode ser herdado diretamente da subclasse. Portanto, o mesmo nome e parâmetros do método podem ser definidos na subclasse neste momento. Neste momento, não haverá contradição entre reescrita e final.
Novos métodos foram redefinidos em subclasses.
A classe pública B estende um {public static void main (string [] args) {} public void getName () {}} classe A { /*** Por causa da modificação privada, esse método não pode ser herdado na subclasse. Portanto, o método GetName na subclasse é redefinido, * pertence à própria subclasse, e a compilação é normal */private vazio final getName () {}/ * Por causa da modificação PBLIC, a subclasse pode herdar esse método, resultando na reescrita do método final da classe parental, e o erro de compilação e o erro de comutação e o erro de compilação, o erro final), e o erro de comcloca), resultando na reescrita do método dos pais) e o erro de compilação e o erro de comclase), resultando em um erro de reescrita do método dos pais e do dia *, e o erro de comclase), e o erro de compilação e o erro de comclas), resultando na reescrita do método da classe parental (e o erro de comclase), e o erro de comclase), resultando em um erro de reescrita (e o erro de compilação, e o erro de comclas), resultando no método do método.3. Variáveis finais de modificar:
A variável modificada final significa que essa variável tem o significado "último, final". Depois que a variável final é definida e inicializada pela primeira vez, o valor da variável modificado final não pode ser alterado.
Aqui estão alguns problemas a serem observados:
1. Variáveis modificadas finais, sejam elas atributos de classe, atributos de objeto, parâmetros formais ou variáveis locais, essas variáveis precisam ser exibidas inicializadas (ou seja, especifique o valor inicial para sua exibição).
Para os parâmetros formais modificados por final, é fácil de entender porque eles são transmitidos por parâmetros reais.
Para variáveis locais modificadas por final, o mesmo que as variáveis que não são modificadas por final, elas precisam exibir a inicialização. Ou seja, as variáveis locais precisam ser inicializadas.
Para atributos de classe geral e atributos de objeto, ele pode ser visto no processo de inicialização da classe e do objeto que a inicialização padrão é executada pela primeira vez. Em seguida, as variáveis com atribuições exibidas são inicializadas novamente.
No entanto, para os atributos de classe e atributos de objeto modificados por final, se a inicialização não for exibida, o valor padrão será o valor de inicialização padrão, que contradiz o ponto de partida do próprio final. Portanto, a sintaxe Java estipula:
Os atributos da classe e os atributos variáveis modificados pelo final devem ser exibidos e inicializados.
Além disso, seja para tipos de dados básicos ou tipos de dados de referência, as variáveis modificadas finais são exibidas pela primeira vez e não podem ser modificadas após a inicialização. É fácil de entender para os tipos de dados básicos. Para referência
Tipo de dados, variáveis de referência apontam para o objeto real, mas armazenam o endereço do objeto apontado. Portanto, seu valor não pode ser modificado não significa que o objeto apontado não pode ser modificado.
4. "Substituição de macro"/"Macro variável" problemas causados pela modificação final
Em Java, variáveis macro/substituição de macro refere -se ao fato de que, no código Java, algumas variáveis podem ser substituídas diretamente por seus próprios valores durante o período de compilação e compilados no arquivo .class. Portanto, essa alteração não existe mais no arquivo .class compilado.
Em variáveis da string de tipo, às vezes as seguintes situações são frequentemente encontradas:
classe pública teste {public static void main (string [] args) {string country = "China"; String name = "qqyumidi"; String userInfo = country + nome; // Após a compilação, o país e as variáveis de nome ainda estão aqui, String user = "China" + "qqyumidi"; // Após a compilação, torna -se Chinaqqyumidi diretamente}}Na linha 9 do código acima, o resultado da variável compilada é diretamente Chinaqqyumidi. Na linha 8, como o país e o nome são variáveis comuns, o compilador não pode determinar diretamente o valor do UserInfo no momento da compilação, então
O resultado após a compilação aqui não é diretamente Chinaqqyumidi.
No entanto, se você deseja que o código na linha 8 seja representado diretamente como Chinaqqyumidi durante o período de compilação, você precisa usar o modificador final para modificar o país e o nome das variáveis.
Motivo: a variável modificada pelo modificador final pode determinar diretamente seu valor durante o período de compilação devido a suas próprias características, e esse valor é imutável. Durante o processo de compilação, suas variáveis podem ser convertidas diretamente em seus valores para representação.
public class Test {public static void main (string [] args) {final string country = "China"; Nome final da string = "qqyumidi"; String userInfo = country + nome; // Após a compilação, é diretamente chianqqyumidi}}O exposto acima é o conteúdo completo dos pontos de conhecimento do modificador Java (artigo de leitura obrigatória) que o editor traz para você. Espero que seja útil para você e apoiar mais wulin.com ~