0Pricing
Android Academy · Урок

Классы и объекты

Определяйте классы со свойствами и методами, используйте конструкторы, изучайте наследование и интерфейсы, а также пишите объектно-ориентированный код в идиоматичном стиле Kotlin.

«Классы и объекты» — бесплатный урок Android Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Android Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Android Academy содержит 4 уроков всего.

Что такое класс?

Класс — это шаблон для создания объектов. Он объединяет связанные данные (свойства) и поведение (функции).

  • class Dog — определяет шаблон
  • val myDog = Dog() — создаёт экземпляр (объект)

Пример: класс User, содержащий имя, возраст и адрес электронной почты.

Определение класса

В классах Kotlin используется лаконичный синтаксис основного конструктора:

class User(val name: String, var age: Int) {
    fun greet(): String {
        return "Hi, I'm $name and I'm $age years old."
    }
}

fun main() {
    val user = User("Alice", 28)
    println(user.name)     // Alice
    println(user.age)      // 28
    user.age = 29          // var can be changed
    println(user.greet())
}

Классы данных

Класс данных отлично подходит для хранения данных. Добавьте ключевое слово data, и Kotlin автоматически создаст:

  • equals() / hashCode() — сравнение по значению
  • toString() — понятный вывод для пользователя
  • copy() — создание изменённой копии

Пример класса данных

Классы данных особенно удобны для представления объектов модели:

data class Product(val id: Int, val name: String, val price: Double)

fun main() {
    val p1 = Product(1, "Laptop", 999.99)
    val p2 = p1.copy(price = 899.99) // new copy with changed price

    println(p1)           // Product(id=1, name=Laptop, price=999.99)
    println(p2)           // Product(id=1, name=Laptop, price=899.99)
    println(p1 == p2)     // false (different price)
}

Сопутствующие объекты

Сопутствующий объект содержит элементы, принадлежащие самому классу, а не отдельному экземпляру, — это похоже на static в Java.

Обращайтесь к ним через имя класса: User.create()

Пример сопутствующего объекта

Используйте сопутствующие объекты для фабричных методов и констант:

class Counter {
    var count = 0

    fun increment() { count++ }

    companion object {
        const val MAX = 100

        fun create(): Counter = Counter()
    }
}

fun main() {
    val c = Counter.create()
    c.increment()
    c.increment()
    println(c.count)        // 2
    println(Counter.MAX)    // 100
}

Наследование

Классы Kotlin по умолчанию являются final (их нельзя расширять). Пометьте класс как open, чтобы разрешить наследование.

  • open class Animal — можно расширять
  • class Dog : Animal() — наследуется от Animal
  • override fun sound() — переопределяет функцию родительского класса

Пример наследования

Создайте простую иерархию классов:

open class Shape {
    open fun area(): Double = 0.0
}

class Circle(val radius: Double) : Shape() {
    override fun area(): Double = 3.14159 * radius * radius
}

class Rectangle(val w: Double, val h: Double) : Shape() {
    override fun area(): Double = w * h
}

fun main() {
    val shapes: List<Shape> = listOf(
        Circle(5.0),
        Rectangle(4.0, 3.0)
    )
    for (s in shapes) println("Area: ${s.area()}")
}

Объявления object

Объявление object создаёт одиночку — класс ровно с одним экземпляром, который создаётся при первом обращении.

Используйте его для вспомогательных средств, менеджеров и любых объектов, которые должны существовать в единственном экземпляре.

Быстрая проверка

Какую возможность класс Kotlin data class предоставляет автоматически?

Итоги: классы и объекты

Вы изучили основные элементы объектно-ориентированного программирования в Kotlin:

  • Классы с основными конструкторами и функциями-членами
  • data class — автоматически создаваемые equals, toString и copy
  • companion object — элементы уровня класса (статические элементы)
  • Классы open и override для наследования
  • Объявления object для одиночек

Теперь Вы готовы создавать настоящие приложения для Android!

Часто задаваемые вопросы

Урок «Классы и объекты» бесплатный?

Да — полный текст урока «Классы и объекты» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Android Academy, подпишись на CoddyKit PRO. Курс Android Academy содержит 4 уроков всего.

Чему я научусь в уроке «Классы и объекты»?

Определяйте классы со свойствами и методами, используйте конструкторы, изучайте наследование и интерфейсы, а также пишите объектно-ориентированный код в идиоматичном стиле Kotlin. Ты практикуешь Android Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Android Academy?

Предыдущий опыт не требуется. Android Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Классы и объекты»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Android Academy?

Да. Каждый урок Android Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Безопасность работы с null
  2. Классы и объекты
  3. Классы данных и запечатанные классы
  4. Функции-расширения и функции высшего порядка
← Назад к Android Academy