Este artigo analisa principalmente as palavras-chave Java comuns final, static, super, e isso em detalhes para facilitar a referência dos leitores. Os detalhes são os seguintes:
1. final
1) Modificar classe:
Indica que esta classe não pode ser herdada
2) Modificar método (método)
Indica que este método não pode ser substituído (@override)
3) Modificar variável (variável)
Indica que o valor desta variável não pode ser alterado posteriormente. É frequentemente usado para modificar constantes imutáveis.
Nota: final significa literalmente “final” e “imutável”. É mais conveniente memorizá-lo combinando o significado.
2. estático (o segundo e o terceiro métodos são comumente usados)
1) Modificar classe:
(Não comumente usado) só pode ser usado para modificar classes internas. Classes comuns não podem ser declaradas desta forma.
2) Modificar método (método)
Os métodos estáticos pertencem à classe (compartilhada entre objetos), não a um determinado objeto. Não há necessidade de criar um objeto, você pode usar o nome da classe para chamar este método.
(Quando o programa é executado, o bytecode da classe é carregado na memória. Quando a classe não cria um objeto, a variável de classe recebe memória alocada e a variável de instância recebe espaço de memória somente quando um objeto específico é criado. )
3) Modificar variável (variável)
Semelhante a 2), as variáveis são compartilhadas no nível da classe e não há necessidade de criar objetos, mas a mudança no valor da variável é integral. Ou seja, se o objeto A altera o valor de uma variável estática operando. nele, então o objeto B operará nele é a variável estática alterada.
Nota: Os blocos de código modificados com estáticos são chamados de blocos de código estáticos. Os blocos de código estáticos são executados primeiro quando a JVM carrega a classe. Pode haver vários blocos de código estático, que serão executados pela JVM na ordem de aparecimento. Cada bloco de código será executado apenas uma vez.
As palavras-chave this e super não podem aparecer em métodos estáticos.
3. super: (referindo-se à referência à classe pai)
1) Relacionado à Classe (classe pai, também chamada de superclasse):
Chame o construtor da classe pai por meio de super(parâmetro 1, parâmetro 2,..., parâmetro n);
2) Relacionado ao Método (método)
super.Method(parâmetro 1, parâmetro 2,..., parâmetro n) chama o método substituído da classe pai;
3) Relacionado à variável (variável)
super.variable, chame a variável da classe pai
Nota: super deve ser usado na primeira linha do construtor da subclasse;
Quando a classe pai não possui um construtor sem parâmetros, a subclasse precisa usar super para chamar explicitamente o construtor da classe pai. Super refere-se a uma referência à classe pai.
4. isto: (referência ao objeto atual)
1) Relacionado à aula:
this (parâmetro 1, parâmetro 2,..., parâmetro n), este é um construtor comum. Somente o construtor (outro) pode chamar o construtor (este), e funções comuns não podem chamar o construtor.
2) Método relacionado:
Chame um método no objeto atual
3) Variável (variável) relacionada:
Chame a variável do objeto atual
Nota: this(); e super() chamar explicitamente o construtor só podem ser colocados na primeira linha da construção;
this.method..();super.method..(); pode ser colocado em qualquer lugar e usado como um método normal;
Há uma grande diferença entre construtores e métodos que usam a palavra-chave this. A referência do método aponta para a instância da classe na qual o método está sendo executado. Os métodos estáticos não podem usar a palavra-chave this, porque os métodos estáticos não pertencem a instâncias da classe, portanto, this não tem nada para apontar. O this do construtor aponta para outro construtor na mesma classe com uma lista de parâmetros diferente.