O que é esta palavra-chave em Java?
esta palavra-chave em Java é uma variável de referência que se refere ao objeto atual de um método ou construtor. O principal objetivo de usar essa palavra-chave em Java é remover a confusão entre atributos de classe e parâmetros que têm os mesmos nomes.
A seguir estão vários usos da palavra-chave 'this' em Java:
- Pode ser usado para referir-se à variável de instância da classe atual
- Pode ser usado para invocar ou iniciar o construtor da classe atual
- Pode ser passado como um argumento na chamada do método
- Pode ser passado como argumento na chamada do construtor
- Pode ser usado para retornar a instância da classe atual
Clique aqui se o vídeo não estiver acessível
Compreenda 'esta' palavra-chave com um exemplo.
- Classe : conta da classe
- Variável de instância : a e b
- Método Definir dados : Para definir o valor de a e b.
- Método Mostrar dados : Para exibir os valores de a e b.
- Método principal: onde criamos um objeto para a classe Account e os métodos de chamada definem dados e mostram dados.
Vamos compilar e executar o código
Nossa saída esperada para A e B deve ser inicializada com os valores 2 e 3, respectivamente.
Mas o valor é 0, por quê? Vamos investigar.
No método Set data, os argumentos são declarados como a e b, enquanto as variáveis de instância também são nomeadas como a e b.
Durante a execução, o compilador fica confuso. Se "a" no lado esquerdo do operador atribuído é a variável de instância ou a variável local. Portanto, ele não define o valor de 'a' quando os dados do conjunto de métodos são chamados.
A solução é a palavra-chave "este"
Anexe 'a' e 'b' com a palavra-chave Java this seguida por um operador ponto (.).
Durante a execução do código, quando um objeto chama o método 'setdata'. A palavra-chave 'this' é substituída pelo manipulador de objetos "obj." (Veja a imagem abaixo).
Então agora o compilador sabe,
- O 'a' no lado esquerdo é uma variável de instância.
- Considerando que o 'a' no lado direito é uma variável local
As variáveis são inicializadas corretamente e a saída esperada é mostrada.
Suponha que você seja inteligente o suficiente para escolher nomes diferentes para sua variável de instância e argumentos de métodos.
Mas, desta vez, você cria dois objetos da classe, cada um chamando o método de conjunto de dados.
Como o compilador irá determinar se ele deve funcionar na variável de instância do objeto 1 ou do objeto 2.
Bem, o compilador anexa implicitamente a variável de instância com a palavra-chave "this" (imagem abaixo).
De forma que, quando o objeto 1 está chamando o método de conjunto de dados, uma variável de instância é anexada por sua variável de referência.
Enquanto o objeto 2 está chamando o método set data, uma variável de instância do objeto 2 é modificada.
Este processo é feito pelo próprio compilador. Você não precisa anexar 'esta' palavra-chave explicitamente, a menos que haja uma situação excepcional como em nosso exemplo.
Exemplo: Para aprender a usar "esta" palavra-chave
Etapa 1) Copie o seguinte código em um bloco de notas.
class Account{int a;int b;public void setData(int a ,int b){a = a;b = b;}public void showData(){System.out.println("Value of A ="+a);System.out.println("Value of B ="+b);}public static void main(String args[]){Account obj = new Account();obj.setData(2,3);obj.showData();}}
Etapa 2) Salvar, compilar e executar o código.
Etapa 3) O valor de a & b é mostrado como zero? Para corrigir o erro, anexe as linhas 6 e 7 com a palavra-chave " this ".
this.a =a;this.b =b;
Etapa 4) Salvar, compilar e executar o código. Desta vez, os valores de a e b são definidos como 2 e 3, respectivamente.
Resumo
- esta palavra - chave em Java é uma variável de referência que se refere ao objeto atual.
- Um dos usos desta palavra-chave em Java é referir-se à variável de instância de classe atual
- Pode ser usado para invocar ou iniciar o construtor da classe atual
- Pode ser passado como um argumento na chamada do método
- este ponteiro em Java pode ser passado como argumento na chamada do construtor
- este operador em Java pode ser usado para retornar a instância da classe atual
- isto em Java é uma referência ao objeto atual, cujo método está sendo chamado.
- Você pode usar a palavra-chave "this" para evitar conflitos de nomenclatura no método / construtor de sua instância / objeto.