this
fait référence à l'objet courant.
Chaque non-statique méthode s'exécute dans le contexte d'un objet. Donc, si vous avez une classe comme ceci:
public class MyThisTest {
private int a;
public MyThisTest() {
this(42); // calls the other constructor
}
public MyThisTest(int a) {
this.a = a; // assigns the value of the parameter a to the field of the same name
}
public void frobnicate() {
int a = 1;
System.out.println(a); // refers to the local variable a
System.out.println(this.a); // refers to the field a
System.out.println(this); // refers to this entire object
}
public String toString() {
return "MyThisTest a=" + a; // refers to the field a
}
}
Puis en appelant frobnicate()
sur new MyThisTest()
sera imprimée
1
42
MyThisTest a=42
Donc, effectivement, vous l'utiliser pour plusieurs choses:
- préciser que vous parlez d'un champ, quand il y a aussi quelque chose d'autre avec le même nom qu'un champ
- référence à l'objet courant comme un ensemble de
- appeler d'autres constructeurs de la classe en cours dans votre constructeur