Руководство по actionscript. часть 1, стр. 049
НекаяПеременная = некаяПеременная + числовоеЗначение
В случае с методом eat ( ) к значению переменной currentCalories текущего объекта (this) мы собираемся добавить 100. В результате получаем следующий код:
this. currentCalories = this. currentCalories + 100;
В качестве удобной альтернативы предыдущему коду язык ActionScript предлагает оператор сложения с присваиванием +=, который, если используется с числами, прибавляет значение, находящееся справа от оператора, к переменной, находящейся слева от него, как показано в следующем коде:
this. currentCalories += 100;
Код класса VirtualPet теперь выглядит следующим образом:
package zoo { internal class VirtualPet { internal var petName; private var currentCalories = 1000;
public function VirtualPet (name) { this. petName = name;
}
function eat ( ) { this. currentCalories += 100;
}
}
}
Начиная с текущего момента, при каждом вызове метода eat ( ) экземпляра VirtualPet значение переменной currentCalories данного экземпляра будет увеличиваться на 100. Например, следующий код, взятый из конструктора класса VirtualZoo, увеличивает значение переменной currentCalories экземпляра VirtualPet, ссылка на который хранится в переменной pet, до 1100 (поскольку
всем экземплярам VirtualPet изначально присваивается значение 1000 калорий).
this. pet = new VirtualPet(«Stan»); this. pet. eat( );
Обратите внимание, что, несмотря на закрытость характеристики currentCalories класса VirtualPet, значение этой переменной может быть изменено в результате выполнения действия (принятия пищи), инициированного внешним кодом — экземпляром VirtualPet. Однако в некоторых случаях даже методы экземпляра должны быть закрытыми. Как и в случае с переменными экземпляра, чтобы контролировать уровень доступа методов экземпляра в программе, используются модификаторы управления доступом.
Модификаторы управления доступом для методов экземпляра
Для описаний методов экземпляра применяются те же модификаторы управления доступом, что и для переменных экземпляра: public, internal, protected и private. Доступ к методу экземпляра, объявленному с использованием модификатора public, может быть осуществлен как внешними командами по отношению к пакету, в котором метод создан, так и внутренними. Метод экземпляра, объявленный с использованием модификатора internal, доступен только для внутренних команд пакета, в котором он описан. Метод экземпляра, объявленный с использованием модификатора protected, может быть доступен только для кода класса, содержащего описание этого метода, или для кода потомков этого класса (мы еще не рассматривали наследование, поэтому, если вы незнакомы с объектно-ориентированным программированием, не обращайте внимания на этот модификатор). Метод экземпляра, объявленный с использованием модификатора private, может быть доступен только для кода класса, содержащего описание этого метода. В ситуации, когда при описании метода ни один из модификаторов не был указан, применяется модификатор internal (доступ внутри пакета).