Котлін Супутні об’єкти

У цій статті ви навчитеся створювати та використовувати супутні об’єкти у своїй програмі Kotlin за допомогою прикладів.

Перш ніж брати участь у супутніх об'єктах, давайте візьмемо приклад для доступу до членів класу.

 class Person ( fun callMe() = println("I'm called.") ) fun main(args: Array) ( val p1 = Person() // calling callMe() method using object p1 p1.callMe() ) 

Тут ми створили об’єкт p1 класу Person для виклику callMe()методу. Ось як це зазвичай працює.

Однак у Kotlin ви також можете викликати callMe()метод, використовуючи ім'я класу, тобто в цьому випадку Person. Для цього вам потрібно створити супутній об’єкт, позначивши оголошення об’єктом companionключовим словом.

Приклад: Супутні об’єкти

 class Person ( companion object Test ( fun callMe() = println("I'm called.") ) ) fun main(args: Array) ( Person.callMe() ) 

Коли ви запускаєте програму, результат буде:

 Мене звуть.

У програмі декларація тестового об'єкта позначена ключовим словом супутник для створення супутнього об'єкта. Отже, можна викликати callMe()метод, використовуючи ім'я класу як:

 Person.callMe ()

Ім'я супутнього об'єкта є необов'язковим і може бути опущено.

 class Person ( // name of the companion object is omitted companion object ( fun callMe() = println("I'm called.") ) ) fun main(args: Array) ( Person.callMe() )

Якщо ви знайомі з Java, ви можете зв'язати супутні об'єкти зі статичними методами (хоча їх внутрішня робота абсолютно інша).

Супутні об’єкти можуть отримати доступ до приватних членів класу. Отже, їх можна використовувати для реалізації заводських зразків методів.

Цікаві статті...