Что делает ключевое слово `this` в Java?

«Что делает ключевое слово `this` в Java?» — вопрос из категории Java Core, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Ключевое слово this в Java — это ссылка на текущий экземпляр объекта. Оно используется для устранения неоднозначности и доступа к членам класса.

Основные случаи применения:

  1. Разрешение конфликта имен между полями класса и параметрами метода/конструктора.

    public class Person {
        private String name;
        public Person(String name) {
            this.name = name; // Поле `this.name`, параметр `name`
        }
    }
  2. Вызов другого конструктора того же класса (должен быть первой инструкцией).

    public Person() {
        this("Default Name"); // Вызов конструктора Person(String)
    }
  3. Возврат текущего объекта из метода или его передача в качестве аргумента.

    public Person getReference() {
        return this;
    }
  4. Явный вызов методов текущего объекта, хотя это часто опускается, если нет конфликта имен.