РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
65 of 1163 menu

Ключевое слово this

Ключевое слово this представляет собой ссылку на текущий объект, то есть на тот экземпляр класса, в котором в данный момент выполняется код. Оно позволяет обращаться к полям и методам этого объекта, а также вызывать другие конструкторы того же класса. Чаще всего this используется для устранения конфликта имен, когда имя параметра метода или конструктора совпадает с именем поля класса.

Синтаксис

this.fieldName; this.methodName(); this();

Пример

Давайте рассмотрим класс, в конструкторе которого параметры имеют те же имена, что и поля. Ключевое слово this поможет явно указать, что мы обращаемся именно к полю объекта:

public class Main { public static void main(String[] args) { User user = new User("John", 25); System.out.println(user.getName()); System.out.println(user.getAge()); } } class User { private String name; private int age; public User(String name, int age) { this.name = name; this.age = age; } public String getName() { return this.name; } public int getAge() { return this.age; } }

Результат выполнения кода:

"John" 25

Пример

Ключевое слово this также можно использовать для вызова одного конструктора из другого внутри того же класса. Это позволяет избежать дублирования кода инициализации:

public class Main { public static void main(String[] args) { Point point = new Point(5); System.out.println(point.getX()); System.out.println(point.getY()); } } class Point { private int x; private int y; public Point(int x, int y) { this.x = x; this.y = y; } public Point(int value) { this(value, value); } public int getX() { return this.x; } public int getY() { return this.y; } }

Результат выполнения кода:

5 5

Пример

Ключевое слово this можно вернуть из метода, чтобы передать ссылку на текущий объект наружу. Это часто применяется в шаблоне «текучий интерфейс» (fluent interface):

public class Main { public static void main(String[] args) { Builder builder = new Builder(); builder.setName("abcde").setValue(12345); System.out.println(builder.getName()); System.out.println(builder.getValue()); } } class Builder { private String name; private int value; public Builder setName(String name) { this.name = name; return this; } public Builder setValue(int value) { this.value = value; return this; } public String getName() { return this.name; } public int getValue() { return this.value; } }

Результат выполнения кода:

"abcde" 12345

Смотрите также

  • конструктор constructor,
    который создает объекты класса
  • ключевое слово super,
    которое ссылается на родительский класс
  • ключевое слово static,
    которое делает члены класса общими
  • ключевое слово private,
    которое ограничивает доступ к членам класса
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить