Свойства

Свойства

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

var property : Int = 1

В свойствах есть возможоность использовать getter и setter. Это необходимо, когда перед тем, как присвоить значения необходимо провести проверку или какое-либо вычисление. Getter вызывается когда вы используете переменную где-либо и служит для возвращения значения, а setter когда присваиваете новое значение. Отдельно вызывать getter или setter нет необходимости, так как они вызываются автоматически. Свойство может не иметь ни getter, ни setter или может иметь одно из них. В случае отсутствия какого-либо из них используется поведение по умолчанию, что для getter является возвращения значения, хранимого в свойстве, а для setter присвоение нового значения:

var property = 1
get() {
    // Getter возвращает значение свойства умножив его на два. field это ссылка на данное свойство, которое предоставляется со стороны компилятора. Инструкция return тут обязательна и тип возвращаемого значения должен быть одинаковым с типом свойства
    return field * 2
}
set(value)
{
    // При установке нового значения сначала проверяем если его значение больше чем 10 присваиваем свойству значение 0
    if (value > 10)
    {
	// field – текущее значение переменной
        field = 0
    } else {
        // Если значение меньше чем 10 присваиваем свойству полученное новое значение (value)
        field = value
    }
}

Переменную можно сделать изменяемым только из класса и предотвратить изменение значений из других классов сделав setter закрытым используя модификатор доступа private:

var prop2 : String = "Hello"
private set;