Рубрики
Без рубрики

Руководство по ключевому слову this Java

Узнайте, как использовать ключевое слово this в Java для ссылки на текущий объект.

Автор оригинала: baeldung.

1. введение

В этом уроке мы рассмотрим ключевое слово this Java.

В Java это ключевое слово является ссылкой на текущий объект, метод которого вызывается .

Давайте рассмотрим, как и когда мы можем использовать это ключевое слово.

2. Устранение Неоднозначности Затенения Полей

Ключевое слово полезно для устранения неоднозначности переменных экземпляра из локальных параметров . Наиболее распространенная причина заключается в том, что у нас есть параметры конструктора с тем же именем, что и поля экземпляра:

public class KeywordTest {

    private String name;
    private int age;
    
    public KeywordTest(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

Как мы видим здесь, мы используем this с полями name и age instance – чтобы отличить их от параметров.

Другое использование-использовать this с параметром скрытия или затенения в локальной области. Пример использования можно найти в статье Переменная и Метод скрытия .

3. Ссылки на конструкторы одного и того же класса

Из конструктора мы можем использовать this() для вызова другого конструктора того же класса . Здесь мы используем this() для цепочки конструкторов, чтобы уменьшить использование кода.

Наиболее распространенным вариантом использования является вызов конструктора по умолчанию из параметризованного конструктора:

public KeywordTest(String name, int age) {
    this();
    
    // the rest of the code
}

Или мы можем вызвать параметризованный конструктор из конструктора без аргументов и передать некоторые аргументы:

public KeywordTest() {
    this("John", 27);
}

Обратите внимание, что this() должен быть первым оператором в конструкторе, иначе произойдет ошибка компиляции.

4. Передача этого в качестве параметра

Здесь у нас есть print Instance() метод, в котором определено ключевое слово this |/аргумент:

public KeywordTest() {
    printInstance(this);
}

public void printInstance(KeywordTest thisKeyword) {
    System.out.println(thisKeyword);
}

Внутри конструктора мы вызываем метод print Instance () . С помощью this мы передаем ссылку на текущий экземпляр.

5. Возврат этого

Мы также можем использовать это ключевое слово для возврата текущего экземпляра класса из метода.

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

6. Ключевое слово this Во Внутреннем классе

Мы также используем this для доступа к экземпляру внешнего класса из внутреннего класса:

public class KeywordTest {

    private String name;

    class ThisInnerClass {

        boolean isInnerClass = true;

        public ThisInnerClass() {
            KeywordTest thisKeyword = KeywordTest.this;
            String outerString = KeywordTest.this.name;
        }
    }
}

Здесь, внутри конструктора, мы можем получить ссылку на экземпляр Keyword Test с помощью Keyword Test.this call . Мы можем пойти еще глубже и получить доступ к переменным экземпляра, таким как Ключевое слово Test.this.name поле.

7. Заключение

В этой статье мы исследовали ключевое слово this в Java.

Как обычно, полный код доступен на Github .