Перейти к основному содержимому

Ключевое слово 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);
}

В итоге результат программы будет тот же, что и в предыдущем примере.