java this keyword tutorial with code examples
Este tutorial explica uma palavra-chave especial ‘this’ em Java em detalhes com exemplos de código simples. Ele cobre como, quando e onde usar a palavra-chave ‘this’:
Neste tutorial, apresentamos um dos conceitos importantes em Java - a palavra-chave ‘this’. Exploraremos os detalhes da palavra-chave ‘this’ e também apresentaremos alguns exemplos de seu uso em Java.
A palavra-chave “this” em Java é uma variável de referência. A variável de referência “this” aponta para o objeto atual no programa Java . Portanto, se você deseja acessar qualquer membro ou função do objeto atual, pode fazê-lo usando a referência ‘this’.
O que você aprenderá:
- Java ‘este’ Introdução
- Quando usar ‘this’ em Java?
- Variável de instância de acesso usando 'this'
- 'This' passado como o parâmetro do método
- Invoque o Método da Classe Atual com ‘este’
- Retorne com 'isso'
- Usando ‘this’ para invocar o construtor da classe atual
- Usando 'this' como o argumento para o construtor
- perguntas frequentes
- Conclusão
Java ‘este’ Introdução
A referência 'isto' é geralmente denominada como 'este ponteiro', pois aponta para o objeto atual. O ‘este ponteiro’ é útil quando há algum nome para os atributos e parâmetros da classe. Quando tal situação surge, o 'este ponteiro' elimina a confusão, pois podemos acessar os parâmetros usando o ponteiro 'este'.
Neste tutorial, discutiremos o uso do ponteiro ‘this’ em várias situações, juntamente com exemplos.
Quando usar ‘this’ em Java?
Em Java, o termo ‘isto’ tem os seguintes usos:
- A referência ‘this’ é usada para acessar a variável de instância de classe.
- Você pode até mesmo passar ‘this’ como um argumento na chamada do método.
- ‘This’ também pode ser usado para invocar implicitamente o método da classe atual.
- Se você quiser retornar o objeto atual do método, use ‘this’.
- Se você quiser invocar o construtor da classe atual, ‘this’ pode ser usado.
- O construtor também pode ter ‘this’ como argumento.
Vamos agora examinar cada um desses usos separadamente.
Variável de instância de acesso usando 'this'
Variáveis de instância de parâmetros de classe e método podem ter o mesmo nome. O ponteiro 'this' pode ser usado para remover a ambigüidade que surge disso.
O programa Java abaixo demonstra como ‘this’ pode ser usado para acessar variáveis de instância.
class this_Test { int val1; int val2; // Parameterized constructor this_Test(int val1, int val2) { this.val1 = val1 + val1; this.val2 = val2 + val2; } void display() { System.out.println('Value val1 = ' + val1 + ' Value val2 = ' + val2); } } class Main{ public static void main(String() args) { this_Test object = new this_Test(5,10); object.display(); } }
Resultado:
No programa acima, você pode ver que as variáveis de instância e os parâmetros do método compartilham os mesmos nomes. Usamos o ponteiro ‘this’ com variáveis de instância para diferenciar entre as variáveis de instância e os parâmetros do método.
'This' passado como o parâmetro do método
Você também pode passar este ponteiro como um parâmetro de método. Passar esse ponteiro como um parâmetro de método geralmente é necessário quando você está lidando com eventos. Por exemplo, suponha que você deseja disparar algum evento no objeto / identificador atual, então você precisa dispará-lo usando este ponteiro.
Dada a seguir é uma exibição de programação em que passamos este ponteiro para o método.
class Test_method { int val1; int val2; Test_method() { val1 = 10; val2 = 20; } void printVal(Test_method obj) { System.out.println('val1 = ' + obj.val1 + ' val2 = ' + obj.val2); } void get() { printVal(this); } } class Main{ public static void main(String() args) { Test_method object = new Test_method(); object.get(); } }
Resultado:
Neste programa, criamos um objeto da classe Test_method na função principal e, em seguida, chamamos o método get () com este objeto. Dentro do método get (), o ponteiro ‘this’ é passado para o método printVal () que exibe as variáveis de instância atuais.
Invoque o Método da Classe Atual com ‘este’
Assim como você pode passar 'this' para o método, você também pode usar esse ponteiro para invocar um método. Se você esquecer de incluir esse ponteiro ao invocar o método da classe atual, o compilador o adicionará para você.
Um exemplo de invocação do método de classe com ‘this’ é fornecido abaixo.
class Test_this { void print() { // calling fuctionshow() this.show(); System.out.println('Test_this:: print'); } void show() { System.out.println('Test_this::show'); } } class Main{ public static void main(String args()) { Test_this t1 = new Test_this(); t1.print(); } }
Resultado:
Neste programa, o método de classe print () chama o método show () usando este ponteiro quando é chamado pelo objeto de classe na função principal.
Retorne com 'isso'
Se o tipo de retorno do método for o objeto da classe atual, você pode retornar convenientemente o ponteiro 'this'. Em outras palavras, você pode retornar o objeto atual de um método usando o ponteiro ‘this’.
Dada a seguir está a implementação de retornar um objeto usando o ponteiro ‘this’.
eu preciso de um endereço de e-mail falso
class Test_this { int val_a; int val_b; //Default constructor Test_this() { val_a = 10; val_b = 20; } Test_this get() { return this; } void display() { System.out.println('val_a = ' + val_a + ' val_b = ' + val_b); } } class Main{ public static void main(String() args) { Test_this object = new Test_this(); object.get().display(); } }
Resultado:
O programa acima mostra o método get () que retorna this, que é um objeto da classe Test_this. Usando o objeto atual retornado pelo método get (), a exibição do método é, por sua vez, chamada.
Usando ‘this’ para invocar o construtor da classe atual
Você também pode usar o ponteiro ‘this’ para invocar o construtor do cla.ss. A ideia básica é reutilizar o construtor. Novamente, se você tiver mais de um construtor em sua classe, poderá chamar esses construtores um do outro, resultando no encadeamento do construtor.
Considere o seguinte programa Java.
class This_construct { int val1; int val2; //Default constructor This_construct() { this(10, 20); System.out.println('Default constructor
'); } //Parameterized constructor This_construct(int val1, int val2) { this.val1 = val1; this.val2 = val2; System.out.println('Parameterized constructor'); } } class Main{ public static void main(String() args) { This_construct object = new This_construct(); } }
Resultado:
No programa acima, temos dois construtores na classe. Chamamos o outro construtor usando o ponteiro ‘this’, do construtor padrão da classe.
Usando 'this' como o argumento para o construtor
Você também pode passar o ponteiro ‘this’ como um argumento para um construtor. Isso é mais útil quando você tem várias classes, conforme mostrado na implementação a seguir.
class Static_A { Static_B obj; Static_A(Static_B obj) { this.obj = obj; obj.display(); } } class Static_B { int x = 10; Static_B() { Static_A obj = new Static_A(this); } void display() { System.out.println('B::x = ' + x); } } class Main{ public static void main(String() args) { Static_B obj = new Static_B(); } }
Resultado:
Conforme mostrado na implementação acima, temos duas classes e cada construtor de classe chama o construtor da outra classe. 'This' ponteiro é usado para esta finalidade.
perguntas frequentes
P # 1) Qual é a diferença entre this e this () em Java?
Responda: Em Java, isso se refere ao objeto atual, enquanto this () se refere ao construtor com parâmetros correspondentes. A palavra-chave ‘this’ funciona apenas com objetos. A chamada 'this () 'é usada para chamar mais de um construtor da mesma classe.
P # 2) Esta palavra-chave é necessária em Java?
Responda: É necessário principalmente quando você precisa passar o objeto atual de um método para outro, ou entre os construtores ou simplesmente usar o objeto atual para outras operações.
Q # 3) Qual é a diferença entre this () e super () em Java?
Responda: Tanto this () quanto super () são palavras-chave em Java. Enquanto this () representa o construtor do objeto atual com parâmetros correspondentes, super () representa o construtor da classe pai.
P # 4) Você pode usar this () e super () em um construtor?
Responda: Sim, você pode usá-lo. O construtor this () apontará para o construtor atual enquanto super () apontará para o construtor da classe pai. Lembre-se de que this () e super () devem ser a primeira instrução.
Conclusão
A palavra-chave ‘this’ é uma referência ao objeto atual no programa Java. Ele pode ser usado para evitar confusão resultante dos mesmos nomes para variáveis de classe (variáveis de instância) e parâmetros de método.
Você pode usar o ponteiro 'this' de várias maneiras, como acessar variáveis de instância, passar argumentos para o método ou construtor, retornar o objeto, etc. O ponteiro 'this' é uma palavra-chave importante em Java e é um recurso útil para acessar o objeto atual e seus membros e funções.
Esperamos que você tenha seguido o uso da palavra-chave ‘this’ em Java neste tutorial.
Leitura recomendada
- Tutorial JAVA para iniciantes: mais de 100 tutoriais práticos em vídeo Java
- Tutorial de reflexão Java com exemplos
- Tutorial de tratamento de exceções C # com exemplos de código
- Tutorial Python DateTime com exemplos
- Tutorial de funções / métodos C # com exemplos de código
- Tutorial Java SWING: Container, Componentes e Manipulação de Eventos
- Tutorial do Java Collections Framework (JCF)
- Interface Java e tutorial de classe abstrata com exemplos