тази ключова дума в Java

⚡ Умно обобщение

Java Тази ключова дума е референтна променлива, която сочи към текущия обект вътре в метод или конструктор. LessОбхващат предназначение, често срещани употреби, конфликти при именуване, верижно свързване на конструктори и работен пример.

  • 🔑 Определение: това препраща към текущия екземпляр на клас.
  • 🧱 Разрешаване на конфликти: Използвайте this.field, за да различите променливите на екземпляра от параметрите с еднакви имена.
  • 🪜 Употреба на конструктора: this() извиква друг конструктор от същия клас за по-чиста инициализация.
  • Пропуск и връщане: Изпратете това като аргумент или го върнете за поддръжка на верижни методи.
  • 🧪 Разработен пример: Класът Account показва как това коригира нулевия изход, причинен от засенчване на параметри.
  • 🤖 AI помощ: Инструментите за кодиране с изкуствен интелект откриват липсващите префикси и предлагат точни рефакторинги.

тази ключова дума в Java

В какво е тази ключова дума Java?

- тази ключова дума в Java е референтна променлива, която препраща към текущия обект на метод или конструктор. Основната цел на използването на тази ключова дума в Java е да се премахне объркването между атрибути на клас и параметри, които имат едно и също име.

Използването на тази ключова дума в Java

Следват различни употреби на ключовата дума this в Java:

  • Може да се използва за препращане към променливата на инстанция на текущия клас.
  • Може да се използва за извикване или иницииране на конструктора на текущия клас.
  • Може да се предаде като аргумент при извикване на метод.
  • Може да се предаде като аргумент при извикване на конструктор.
  • Може да се използва за връщане на текущия екземпляр на класа.

Кликнете тук ако видеото не е достъпно

Как да разберем тази ключова дума с пример

тази ключова дума в Java
Java тази ключова дума Пример

  1. клас: клас акаунт
  2. Променлива на екземпляра: а и б
  3. Метод Задайте данни: За да зададете стойността за a и b.
  4. Метод Показване на данни: За показване на стойностите за a и b.
  5. Основен метод: където създаваме обект за класа Account и извикваме методи за задаване на данни и показване на данни.

Разглеждане на объркването около компилатора

Нека компилираме и изпълним кода.

Нашият очакван изход за A и B трябва да се инициализира съответно на стойностите 2 и 3.

Но стойността е 0. Защо? Нека проучим.

тази ключова дума в Java

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

тази ключова дума в Java

По време на изпълнение, компилаторът е объркан. Дали „a“ от лявата страна на присвоения оператор е променливата на инстанцията или локалната променлива. Следователно, той не задава стойността на „a“, когато се извиква наборът от данни за метода.

тази ключова дума в Java

Решението е ключовата дума this.

Добавете и „a“, и „b“ с Java тази ключова дума, последвана от оператор точка (.).

тази ключова дума в Java

По време на изпълнение на код, когато обект извика метода setdata, ключовата дума this се заменя с манипулатора на обекта „obj“. (Вижте изображението по-долу.)

тази ключова дума в Java

Така че сега компилаторът знае,

  • „A“ от лявата страна е променлива на екземпляр.
  • Докато „a“ от дясната страна е локална променлива.

- променливи се инициализират правилно и се показва очакваният резултат.

тази ключова дума в Java

Как компилаторът обработва множество обекти

Да предположим, че избирате различни имена за аргументите на променливата и метода на вашия екземпляр.

тази ключова дума в Java

Но този път създавате два обекта от класа, като всеки извиква метода за набор от данни.

Как компилаторът ще определи дали трябва да работи върху променливата на екземпляра на обект 1 или обект 2?

тази ключова дума в Java

Е, компилаторът имплицитно добавя променливата на екземпляра с ключовата дума this (изображението по-долу).

тази ключова дума в Java

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

тази ключова дума в Java

Докато обект 2 извиква метода за набор от данни, променлива на екземпляр на обект 2 се променя.

тази ключова дума в Java

Компилаторът обработва това автоматично. Не е необходимо да добавяте ключовата дума this изрично, освен ако изключителна ситуация не го изисква.

Пример: тази ключова дума в Java с Code

Пример: За да научите употребата на ключовата дума 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) Стойността на a и b е показана като нула? За да коригирате грешката, добавете ред # 6 и 7 с това ключова дума.

this.a =a;
this.b =b;

Стъпка 4) Запазете, компилирайте и изпълнете кода. Този път стойностите на a и b са съответно 2 и 3.

Въпроси и Отговори

Ключовата дума this се отнася до текущия обект, чийто метод или конструктор се изпълнява. Тя позволява на кода достъп до собствените полета и методи на екземпляра на този обект.

Не. Ключовата дума this принадлежи на инстанция, докато статичните методи съществуват на ниво клас. Използването this вътре в статичен метод води до грешка по време на компилация.

this() извиква друг конструктор от същия клас като първия оператор. Това избягва дублиране на код и позволява на един конструктор да делегира настройката на претоварен конструктор.

Асистентите за кодиране с изкуствен интелект маркират засенчени параметри, добавят липсващия префикс this и пренаписват конструкторите, за да използват верижното свързване this() и плавните сетъри, които връщат this.

Преподавателите по изкуствен интелект обясняват идентичността на обектите, показват разлика между инстанции и локални обхвати и създават подробни примери с тестове, които обясняват кога да се използва ключовата дума this.

Вижте нашата статия за Java Въпроси за интервю: - Натисни тук

Обобщете тази публикация с: