Programmation Java/this
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
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
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
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"
}
}