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

В какво е тази ключова дума Java?
- тази ключова дума в Java е референтна променлива, която препраща към текущия обект на метод или конструктор. Основната цел на използването на тази ключова дума в Java е да се премахне объркването между атрибути на клас и параметри, които имат едно и също име.
Използването на тази ключова дума в Java
Следват различни употреби на ключовата дума this в Java:
- Може да се използва за препращане към променливата на инстанция на текущия клас.
- Може да се използва за извикване или иницииране на конструктора на текущия клас.
- Може да се предаде като аргумент при извикване на метод.
- Може да се предаде като аргумент при извикване на конструктор.
- Може да се използва за връщане на текущия екземпляр на класа.
Кликнете тук ако видеото не е достъпно
Как да разберем тази ключова дума с пример

- клас: клас акаунт
- Променлива на екземпляра: а и б
- Метод Задайте данни: За да зададете стойността за a и b.
- Метод Показване на данни: За показване на стойностите за a и b.
- Основен метод: където създаваме обект за класа Account и извикваме методи за задаване на данни и показване на данни.
Разглеждане на объркването около компилатора
Нека компилираме и изпълним кода.
Нашият очакван изход за A и B трябва да се инициализира съответно на стойностите 2 и 3.
Но стойността е 0. Защо? Нека проучим.
В метода Set data, аргументите са декларирани като a и b, докато променливите на екземпляра също са именувани a и b.
По време на изпълнение, компилаторът е объркан. Дали „a“ от лявата страна на присвоения оператор е променливата на инстанцията или локалната променлива. Следователно, той не задава стойността на „a“, когато се извиква наборът от данни за метода.
Решението е ключовата дума this.
Добавете и „a“, и „b“ с Java тази ключова дума, последвана от оператор точка (.).
По време на изпълнение на код, когато обект извика метода setdata, ключовата дума this се заменя с манипулатора на обекта „obj“. (Вижте изображението по-долу.)
Така че сега компилаторът знае,
- „A“ от лявата страна е променлива на екземпляр.
- Докато „a“ от дясната страна е локална променлива.
- променливи се инициализират правилно и се показва очакваният резултат.
Как компилаторът обработва множество обекти
Да предположим, че избирате различни имена за аргументите на променливата и метода на вашия екземпляр.
Но този път създавате два обекта от класа, като всеки извиква метода за набор от данни.
Как компилаторът ще определи дали трябва да работи върху променливата на екземпляра на обект 1 или обект 2?
Е, компилаторът имплицитно добавя променливата на екземпляра с ключовата дума this (изображението по-долу).
Така, че когато обект 1 извиква метода за набор от данни, променлива на екземпляр се добавя от нейната референтна променлива.
Докато обект 2 извиква метода за набор от данни, променлива на екземпляр на обект 2 се променя.
Компилаторът обработва това автоматично. Не е необходимо да добавяте ключовата дума 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.
Въпроси и Отговори
Вижте нашата статия за Java Въпроси за интервю: - Натисни тук











