Шаг 151.
Основы Kotlin.
Инициализация. Объявление свойств в главном конструкторе

    На этом шаге мы рассмотрим особенности такого объявления.

    Обратите внимание на прямую связь параметров конструктора в Player и свойств класса: у вас есть параметр для каждого свойства класса, которое требуется инициализировать при создании игрока.

    Для свойств с методами чтения и записи по умолчанию Kotlin позволяет объявить параметр и свойство в одном определении, без создания временной переменной. Свойство name использует нестандартные методы чтения и записи, поэтому для него такой подход использовать нельзя. Но можно для других свойств Player.

    Измените код класса Player и объявите healthPoints, isBlessed и isImmortal как параметры главного конструктора Player. (Не забудьте удалить нижние подчеркивания перед именами переменных.)

class Player (_name: String,
              var healthPoints: Int,
              val isBlessed: Boolean,
              private val isImmortal: Boolean) {
    var name = _name
        get() = field.capitalize()
        private set(value) {
            field = value.trim()
        }
    .   .   .   . 
}


Рис.1. Объявление свойств в первичном конструкторе (Game.kt)

    Для каждого параметра конструктора вы указываете, будет ли он только для чтения или нет. Определяя параметры в конструкторе с помощью ключевых слов val и var, вы объявляете соответствующие свойства класса val или var, а также параметры, для которых конструктор будет ожидать аргументы. Вы также неявно присваиваете каждому свойству значение, которое передается в качестве аргумента.

    Дублирование кода усложняет внесение изменений. Обычно мы предпочитаем именно этот способ объявления свойств класса, потому что он ведет к меньшему дублированию. Этот прием нельзя использовать для объявления свойства name, потому что оно имеет нестандартные методы чтения и записи, но в других случаях объявление свойства в первичном конструкторе - это хороший выбор.

    На следующем шаге мы рассмотрим вспомогательные конструкторы.




Предыдущий шаг Содержание Следующий шаг