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 класи можуть містити ряд компонентів:
-
конструктори і ініціалізатор
-
функції
-
властивості
-
вкладені класи
-
оголошення об'єктів
Далі ми розглянемо визначення і використання цих компонентів.