Kotlin в IntelliJ IDEA Kotlin змінні Kotlin типи даних Kotlin операції з числами Kotlin умовні вирази Kotlin умовні конструкції Kotlin цикли Kotlin послідовності Kotlin масиви Kotlin функціональне програмування Kotlin змінна кількість параметрів. Vararg Kotlin повернення результату. оператор return Kotlin однорядкові і локальні функції Kotlin перевантаження функцій Kotlin Лямбда-вирази Kotlin функції вищого порядку Kotlin Анонімні функції Kotlin ООП Класи і об'єкти Kotlin ООП властивості Kotlin ООП конструктор Kotlin ООП функції в класах Kotlin ООП Пакети та імпорт Kotlin ООП модифікатори видимості Kotlin ООП вкладені класи Kotlin ООП інтерфейси Kotlin ООП спадкування Kotlin ООП Перевизначення методів і властивостей Kotlin ООП Абстрактні класи та методи Kotlin ООП Data-класи Kotlin ООП перерахування enums Kotlin ООП Null і nullable-типи Kotlin ООП Обробка винятків Kotlin ООП перетворення типів Kotlin ООП Інфіксна функція Kotlin ООП функції розширення Kotlin ООП Узагальнені класи і функції Kotlin ООП обмеження узагальнень Kotlin ООП Варіантність, коваріантність і контраваріантність Kotlin Колекції. Змінювані і незмінні колекції Kotlin Колекції. LIST список Kotlin Колекції. Set Kotlin Колекції. Map

Kotlin ООП Класи і об'єкти


Об'єктно-орієнтоване програмування


Класи і об'єкти

Kotlin підтримує об'єктно-орієнтовану парадигму програмування, а це значить, що програму на даній мові можна представити у вигляді взаємодіючих між собою об'єктів.

Поданням об'єкта є клас . Клас фактично представляє визначення об'єкта. А об'єкт є конкретним втіленням класу. Наприклад, у всіх є деяке уявлення про машину, наприклад, кузов, чотири колеса, кермо і т.д. - деякий загальний набір харакстерістік, притаманних кожній машині. Це уявлення фактично і є класом. При цьому є різні машини, у яких відрізняється форма кузова, якісь інші деталі, тобто є конкретні втілення цього класу, конкретні об'єкти або екземпляри класу.

Для визначення класу застосовується ключове слово class , після якого йде ім'я класу. А після імені класу в фігурних дужках визначається тіло класу. Якщо клас не має тіла, то фігурні дужки можна опустити. Наприклад, визначимо клас, який представляє людини:

class Person
 
// либо можно так
class Person { }

Клас фактично представляє новий тип даних, тому ми можемо визначати змінні цього типу:

fun main(args: Array<String>) {
 
    val tom: Person
    val bob: Person
    val alice: Person
}
 
class Person

У функції main визначені три змінних типу Person. Варто також відзначити, що на відміну від інших об'єктно-орієнтованих мов (як C # або Java), функція main в Kotlin не поміщається в окремих клас, а завжди визначається поза будь-якого класу.

Для створення об'єкта класу необхідно викликати конструктор даного класу. Конструктор фактично являє функцію, яка називається по імені класу і яка виконує ініціалізацію об'єкта. За замовчуванням для класу компілятор генерує порожній конструктор, який ми можемо використовувати:

val tom: Person = Person()

Частина коду після знака одно Person() якраз і представляє виклик конструктора, який створює об'єкт класу Person. До виклику конструктора змінна класу не вказує ні на який об'єкт.

Наприклад, створимо три об'єкти класу Person:

fun main(args: Array<String>) {
 
    val tom: Person = Person()
    val bob: Person = Person()
    val alice: Person = Person()
}
 
class Person

У Kotlin класи можуть містити ряд компонентів:

  • конструктори і ініціалізатор

  • функції

  • властивості

  • вкладені класи

  • оголошення об'єктів

Далі ми розглянемо визначення і використання цих компонентів.


Наш партнер:
beta test mp3 playlist downloader