Ключевое слово this
Ключевое слово this представляет ссылку на текущий экземпляр класса. Через это ключевое слово мы можем обращаться к переменным, методам объекта, а также вызывать его конструкторы. Например:
public class Program {
public static void main(String[] args) {
Person undef = new Person();
undef.displayInfo();
Person tom = new Person("Tom");
tom.displayInfo();
Person sam = new Person("Sam", 25);
sam.displayInfo();
}
}
class Person {
String name; // имя
int age; // возраст
Person() {
this("Undefined", 18);
}
Person(String name) {
this(name, 18);
}
Person(String name, int age) {
this.name = name;
this.age = age;
}
void displayInfo() {
System.out.printf("Name: %s \tAge: %d\n", name, age);
}
}
В третьем конструкторе параметры называются так же, как и поля класса. И чтобы разграничить поля и параметры, применяется ключевое слово this:
this.name = name;
Так, в данном случае указываем, что значение параметра name присваивается полю name.
Кроме того, у нас три конструктора, которые выполняют идентичные действия: устанавливают поля name и age. Чтобы избежать повторов, с помощью this можно вызвать один из конструкторов класса и передать для его параметров необходимые значения:
Person(String name) {
this(name, 18);
}
В итоге результат программы будет тот же, что и в предыдущем примере.