Programmation Java/this
Un livre de Wikibooks.
| Programmation |
| Java |
| Sommaire |
| IHM avec SWING |
| Annexes |
| Modifier ce modèle |
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.
[modifier] Désambiguïser
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.
[modifier] 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);
[modifier] 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" } }