Ключевое слово THIS — это ссылочная переменная в Java, которая ссылается на текущий объект.
Ниже перечислены различные варианты использования ключевого слова «this» в Java:
- Может использоваться для ссылки на переменную экземпляра текущего класса;
- Может использоваться для вызова или запуска текущего конструктора класса;
- Может быть передан как аргумент в вызове метода;
- this может быть передано в качестве аргумента в вызове конструктора;
- Может использоваться для возврата текущего экземпляра класса.
Примеры

Давайте скомпилируем и запустим код.
Наш ожидаемый результат для A и B должен быть инициализирован значениями 2 и 3 соответственно.
Но значение равно 0, почему? Давай подумаем.

В методе Set data аргументы объявляются как a и b, а переменные экземпляра также именуются как a и b.

Во время выполнения компилятор запутался. Является ли «a» слева от назначенного оператора переменной экземпляра или локальной переменной. Следовательно, он не устанавливает значение ‘a’ при вызове набора данных метода.

Решением является ключевое слово «this»
Добавьте оба «a» и «b» с ключевым словом «this», за которым следует оператор точки (.).

Во время выполнения кода, когда объект вызывает метод ‘setdata’. Ключевое слово ‘this’ заменяется обработчиком объекта «obj.» (См. Изображение ниже).

Итак, теперь компилятор знает,
- ‘A’ в левой части является переменной Instance.
- Принимая во внимание, что ‘a’ на правой стороне является локальной переменной
Переменные инициализируются правильно, и отображается ожидаемый результат.

Предположим, вы достаточно умны, чтобы выбирать разные имена для вашей переменной экземпляра и аргументов методов.

Но на этот раз вы создаете два объекта класса, каждый из которых вызывает метод набора данных.
Как компилятор определит, должен ли он работать с переменной экземпляра объекта 1 или объекта 2.

Что ж, компилятор неявно добавляет переменную экземпляра с ключевым словом «this» (рисунок ниже).

Таким образом, когда объект 1 вызывает метод набора данных, к переменной экземпляра добавляется его ссылочная переменная.

Пока объект 2 вызывает метод набора данных, переменная экземпляра объекта 2 изменяется.

Этот процесс заботится самим компилятором. Вам не нужно явно добавлять ключевое слово this, если нет исключительной ситуации, как в нашем примере.
Пример: чтобы узнать, как использовать this ключевое слово:
Шаг 1) Скопируйте следующий код в блокнот.
class Account{
int a;
int b;
public void setData(int a ,int b){
a = a;
b = b;
}
public void showData(){
System.out.println("Value of A ="+a);
System.out.println("Value of B ="+b);
}
public static void main(String args[]){
Account obj = new Account();
obj.setData(2,3);
obj.showData();
}
}
Шаг 2) Сохранение, компиляция Запустите код. Шаг 3) Значение ab отображается как ноль? Чтобы исправить ошибку, добавьте строку # 6 7 с ключевым словом «this».
this.a =a; this.b =b;
Шаг 4) Сохраните, скомпилируйте и запустите код. На этот раз значения ab установлены на 2 3 соответственно.
