Guide du mot-clé Java this

Guide de ce mot-clé Java

 

1. introduction

Dans ce didacticiel,we’ll take a look at the this Java keyword.

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

Voyons comment et quand nous pouvons utiliser le mot clé.

2. Ombrage sur le terrain sans ambiguïté

The keyword is useful for disambiguating instance variables from local parameters. La raison la plus courante est lorsque nous avons des paramètres de constructeur portant le même nom que des champs d'instance:

public class KeywordTest {

    private String name;
    private int age;

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

Comme nous pouvons le voir ici, nous utilisonsthis avec les champs d'instancename etage - pour les distinguer des paramètres.

Une autre utilisation consiste à utiliserthis avec le paramètre masquant ou masquant dans la portée locale. Un exemple d'utilisation peut être trouvé dans l'articleVariable and Method Hiding.

3. Référencer des constructeurs de la même classe

From a constructor, we can use this() to call a different constructor of the same class. Ici, nous utilisonsthis() pour le chaînage du constructeur afin de réduire l'utilisation du code.

Le cas d'utilisation le plus courant consiste à appeler un constructeur par défaut à partir du constructeur paramétré:

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

    // the rest of the code
}

Ou, nous pouvons appeler le constructeur paramétré à partir du constructeur sans argument et passer des arguments:

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

Notez quethis() doit être la première instruction du constructeur, sinon l'erreur de compilation se produira.

4. Passerthis comme paramètre

Ici, nous avons la méthodeprintInstance(), où l'argumentthis Keyword est défini:

public KeywordTest() {
    printInstance(this);
}

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

À l'intérieur du constructeur, nous invoquons la méthodeprintInstance(). Avecthis, on passe une référence à l'instance courante.

5. Retour dethis

We can also use this keyword to return the current class instance de la méthode.

Pour ne pas dupliquer le code, voici un exemple pratique complet de la façon dont il est implémenté dans lesbuilder design pattern.

6. Le mot-cléthis dans la classe interne

Nous utilisons égalementthis pour accéder à l'instance de classe externe depuis la classe interne:

public class KeywordTest {

    private String name;

    class ThisInnerClass {

        boolean isInnerClass = true;

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

Ici, à l'intérieur du constructeur, nous pouvons obtenir une référence à l'instanceKeywordTest avec l'appelKeywordTest.this. Nous pouvons aller encore plus loin et accéder aux variables d'instance commeKeywordTest.this.name field.

7. Conclusion

Dans cet article, nous avons exploré le mot-cléthis en Java.

Comme d'habitude, le code complet est disponibleover on Github.