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

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

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

Синтаксис

this // ссылка на текущий объект this.property // доступ к свойству текущего объекта this.method() // вызов метода текущего объекта this@ClassName // квалифицированное обращение к внешнему объекту

Пример

Использование this для доступа к свойству класса:

class Person { var name: String = "" fun setName(name: String) { this.name = name } fun printName() { println("Name: ${this.name}") } } val person = Person() person.setName("John") person.printName()

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

Name: John

Пример

Разрешение конфликта имен между параметром конструктора и полем класса:

class Car(val brand: String) { var speed: Int = 0 constructor(brand: String, speed: Int) : this(brand) { this.speed = speed } } val car = Car("Toyota", 120) println("Brand: ${car.brand}, Speed: ${car.speed}")

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

Brand: Toyota, Speed: 120

Пример

Использование квалифицированного this для доступа к внешнему классу из внутреннего:

class Outer { val outerProperty: String = "outer" inner class Inner { val innerProperty: String = "inner" fun printProperties() { println("Inner property: ${this.innerProperty}") println("Outer property: ${this@Outer.outerProperty}") } } } val outer = Outer() val inner = outer.Inner() inner.printProperties()

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

Inner property: inner Outer property: outer

Пример

Использование this для вызова другого конструктора:

class Rectangle { var width: Int var height: Int constructor(size: Int) : this(size, size) constructor(width: Int, height: Int) { this.width = width this.height = height } fun area(): Int { return this.width * this.height } } val square = Rectangle(5) val rectangle = Rectangle(3, 4) println("Square area: ${square.area()}") println("Rectangle area: ${rectangle.area()}")

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

Square area: 25 Rectangle area: 12

Пример

Использование this в расширениях (extension functions):

fun String.addPrefix(prefix: String): String { return prefix + this } val result = "World".addPrefix("Hello ") println(result)

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

Hello World

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

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