Guia para esta palavra-chave Java

Guia para esta palavra-chave Java

 

1. Introdução

Neste tutorial,we’ll take a look at the this Java keyword.

Em Java,this keyword is a reference to the current object whose method is being called.

Vamos explorar como e quando podemos usar a palavra-chave.

2. Desambiguação de Sombreamento de Campo

The keyword is useful for disambiguating instance variables from local parameters. O motivo mais comum é quando temos parâmetros de construtor com o mesmo nome que os campos da instância:

public class KeywordTest {

    private String name;
    private int age;

    public KeywordTest(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

Como podemos ver aqui, estamos usandothis com os campos de instâncianameeage - para distingui-los dos parâmetros.

Outro uso é usarthis com o parâmetro ocultar ou sombreamento no escopo local. Um exemplo de uso pode ser encontrado no artigoVariable and Method Hiding.

3. Referenciando construtores da mesma classe

From a constructor, we can use this() to call a different constructor of the same class. Aqui, usamosthis() para o encadeamento do construtor para reduzir o uso de código.

O caso de uso mais comum é chamar um construtor padrão a partir do construtor parametrizado:

public KeywordTest(String name, int age) {
    this();

    // the rest of the code
}

Ou, podemos chamar o construtor parametrizado do construtor no argument e passar alguns argumentos:

public KeywordTest() {
    this("John", 27);
}

Observe quethis() deve ser a primeira instrução no construtor, caso contrário, ocorrerá um erro de compilação.

4. Passandothis como um parâmetro

Aqui temos o métodoprintInstance(), onde o argumentothis Keyword é definido:

public KeywordTest() {
    printInstance(this);
}

public void printInstance(KeywordTest thisKeyword) {
    System.out.println(thisKeyword);
}

Dentro do construtor, invocamos o métodoprintInstance(). Comthis, passamos uma referência à instância atual.

5. Retornandothis

We can also use this keyword to return the current class instance do método.

Para não duplicar o código, aqui está um exemplo prático completo de como ele é implementado nobuilder design pattern.

6. A palavra-chavethis dentro da classe interna

Também usamosthis para acessar a instância da classe externa de dentro da classe interna:

public class KeywordTest {

    private String name;

    class ThisInnerClass {

        boolean isInnerClass = true;

        public ThisInnerClass() {
            KeywordTest thisKeyword = KeywordTest.this;
            String outerString = KeywordTest.this.name;
        }
    }
}

Aqui, dentro do construtor, podemos obter uma referência à instânciaKeywordTest com a chamadaKeywordTest.this. Podemos ir ainda mais fundo e acessar as variáveis ​​de instância comoKeywordTest.this.name field.

7. Conclusão

Neste artigo, exploramos a palavra-chavethis em Java.

Como de costume, o código completo está disponívelover on Github.