это ключевое слово содержит ссылку на текущий объект. Давайте рассмотрим пример, чтобы понять его.
class ThisKeywordExample
{
int a;
int b;
public static void main(String[] args)
{
ThisKeywordExample tke=new ThisKeywordExample();
System.out.println(tke.add(10,20));
}
int add(int x,int y)
{
a=x;
b=y;
return a+b;
}
}
В вышеприведенном примере есть имя класса ThisKeywordExample, которое состоит из двух экземпляров данных a и b.
есть метод add, который сначала устанавливает число в a и b, а затем возвращает сложение.
Элементы данных экземпляра занимают память, когда мы создаем объект этого класса, и принимаются переменной refrence в
что мы держим ссылку на этот объект. В приведенном выше примере мы создали объект класса в методе main и удерживаем
ссылка этого объекта в переменную tke refrence. когда мы вызываем метод add, как a и b доступны в методе add
потому что метод add не имеет ссылки на объект. Ответ на этот вопрос проясняет понятие этого ключевого слова
вышеуказанный код обрабатывается JVM как
class ThisKeywordExample
{
int a;
int b;
public static void main(String[] args)
{
ThisKeywordExample tke=new ThisKeywordExample();
System.out.println(tke.add(10,20,tke));
}
int add(int x,int y,ThisKeywordExample this)
{
this.a=x;
this.b=y;
return this.a+this.b;
}
}
вышеупомянутые изменения вносятся JVM, поэтому он автоматически передает в метод еще один параметр (указатель объекта) и
удерживайте его в переменной refrence this и получите доступ к члену экземпляра этого объекта и сгенерируйте эту переменную.
Вышеуказанные изменения вносятся JVM, если вы скомпилируете код, тогда возникает ошибка компиляции, потому что в этом ничего не нужно делать. Все
это обрабатывается JVM.