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

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

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

Синтаксис

this.field // обращение к полю текущего объекта this.method() // вызов метода текущего объекта this() // вызов другого конструктора класса this(args) // вызов конструктора с аргументами

Пример

Давайте разберём ситуацию, когда имя параметра конструктора совпадает с именем поля класса. Без this параметр «затенит» поле, и присваивание не сработает:

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

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

"John" 25

Пример

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

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

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

"John" 18

Пример

Давайте передадим текущий объект в другой метод с помощью this. Так один объект может сослаться на самого себя:

public class Main { public static void main(String[] args) { User user = new User("John"); user.printSelf(); } } class User { String name; User(String name) { this.name = name; } void printSelf() { Printer.print(this); } } class Printer { static void print(User user) { System.out.println("User: " + user.name); } }

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

"User: John"

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

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