10. Резюме
Этот урок охватил много тем. Хотя многое из этого должно быть знакомо по другим объектно-ориентированным языкам программирования, Kotlin добавляет некоторые возможности для того, чтобы код оставался лаконичным и читаемым.
Классы и конструкторы
- Определите класс в Kotlin, используя
class`.`. - Kotlin автоматически создает сеттеры и геттеры для свойств.
- Определите основной конструктор непосредственно в определении класса. Например:
class Aquarium(var length: Int = 100, var width: Int = 20, var height: Int = 40) - Если для основного конструктора требуется дополнительный код, напишите его в одном или нескольких
initблоках. - Класс может определить один или несколько вторичных конструкторов, используя `
constructor<constructor>`, но в стиле Kotlin вместо этого рекомендуется использовать фабричную функцию.
Модификаторы видимости и подклассы
- Все классы и функции в Kotlin
publicпо умолчанию являются , но вы можете использовать модификаторы для изменения видимости наinternal,private, илиprotected. - Для создания подкласса родительский класс должен быть помечен как
open. - Для переопределения методов и свойств в подклассе, эти методы и свойства должны быть помечены
openв родительском классе.
Классы данных, синглтоны и перечисления
- Создайте класс данных, добавив перед объявлением префикс `
data.`. - Деструктуризация — это сокращённый способ присвоения свойств объекта
dataотдельным переменным. - Создайте класс-синглтон, используя
objectвместоclass. - Определите перечисление с помощью
enum class.
Абстрактные классы, интерфейсы и делегирование
- Абстрактные классы и интерфейсы — это два способа обеспечить совместное использование общего поведения между классами.
- Абстрактный класс определяет свойства и поведение, но оставляет реализацию подклассам.
- Интерфейс определяет поведение и может предоставлять реализации по умолчанию для некоторых или всех видов поведения .
- При использовании интерфейсов для композиции класса его функциональность расширяется за счет экземпляров класса, которые он содержит.
- Делегирование интерфейсов использует композицию, делегируя реализацию классам интерфейса.
- Композиция — это мощный способ добавления функциональности классу с помощью делегирования интерфейсов. В целом, предпочтительнее использовать композицию, но наследование от абстрактного класса лучше подходит для решения некоторых задач.
Последнее изменение: Воскресенье, 5 апреля 2026, 14:12