Programmation Java/this

Un livre de Wikilivres.
Sauter à la navigation Sauter à la recherche


Le mot-clé this désigne, dans une classe, l'instance courante de la classe elle-même. Il est utilisé à différentes fins décrites dans les sections suivantes.

Rendre Univoque[modifier | modifier le wikicode]

Il peut être utilisé pour rendre le code explicite et non ambigu.

Par exemple, si dans une méthode, on a un paramètre ayant le même nom qu'un attribut de la classe dont la méthode fait partie, on peut désigner explicitement l'attribut grâce à this :

public class Calculateur
{
    protected int valeur;

    public void calcule(int valeur)
    {
        this.valeur = this.valeur + valeur;
    }
}

Dans cet exemple, la méthode calcule additionne le paramètre valeur à l'attribut valeur et stocke le résultat dans l'attribut valeur. L'attribut a été désigné explicitement par le mot-clé this, désignant l'instance de la classe, préfixé au nom de l'attribut.

S'auto-désigner comme référence[modifier | modifier le wikicode]

Le mot-clé this peut être utilisé pour passer une référence à l'instance elle-même comme paramètre d'une méthode.

Par exemple : s'enregistrer comme écouteur d'évènement :

source.addListener(this);

Désigner l'instance de la classe qui encadre[modifier | modifier le wikicode]

Dans le cas de classes imbriquées, c'est-à-dire qu'une classe interne utilise l'instance de la classe externe, le mot-clé this préfixé du nom de la classe externe permet de désigner l'instance de la classe externe. S'il n'est pas préfixé, il désigne l'instance de la classe interne.

Exemple :

public class Livre
{
    String titre = "Le livre";

    class Chapitre
    {
        String titre = "Chapitre 1";

        public String toString()
        {
            return
                Livre.this.titre +    // "Le livre"
                "/" +
                this.titre ;          // "Chapitre 1"
        // ou   Chapitre.this.titre ; // "Chapitre 1"
        }
        // -> "Le livre/Chapitre 1"
    }
}