Was macht this.variable?

Mit this.variable greift man auf die Instanzvariable mit dem Namen variable zu.
Falls es im lokalen Scope eine zweite Variable mit dem Namen variable gibt, würde im lokalen Scope ohne die Angabe von this. die lokale Variable variable verwendet. Falls es bei lokalen Variablen und Instanzvariablen keine Namensgleichheiten gibt, kann man beim Zugriff auf Instanzvariablen this. weglassen.

Im folgenden Beispiel wird in Zeile 6 die Instanzvariable name belegt. Weil die Instanzvariable und der Parameter den gleichen Bezeichner haben, muß mit this. unterschieden werden, was gemeint ist.
In Zeile 10 haben Instanzvariable und Parameter unterschiedliche Bezeichner. Hier ist es egal, ob man this.name oder name schreibt.

public class Person {

    private String name;

    public void setName1(String name) {
        this.name = name;
    }

    public void setName2(String n) {
        name = n;
    }

    public String getName() {
        return name;
    }

}