Руководство по actionscript. часть 1, стр. 074
Var now = new Date( ); // Создает новый объект Date
var day = now. getDate( ): // Возвращает целое число в диапазоне
// от 1 до 31
var month = now. getMonth( ); // Возвращает целое число в диапазоне
// от 0 до 11
if ( !( (month + day)==l) ) { // Выполнение «непервоянварского» кода
Оператор логического НЕ иногда также используется для переключения значения переменной с true на false и наоборот. Например, предположим, что у нас есть одна кнопка, включающая и выключающая звук приложения. Когда кнопка нажата, программа может использовать следующий код для включения или выключения воспроизведения аудио:
soundEnabled = !soundEnabled // Переключение текущего состояния звука
if (soundEnabled) {
// Убедиться, что звуки слышны } else {
// Выключить все звуки
}
Обратите внимание, что символ! также используется в операторе неравенства (! =). В программировании этот символ обычно обозначает «не» или «противоположность». Он не имеет никакого отношения к символу!, обозначающему факториал в обычной системе математических обозначений.
Возвращение к классам и объектам
Наше знакомство с условными операторами и циклами подошло к концу, однако мы не рассмотрели примеры применения абсолютно всех возможностей на практике. На протяжении этой книги мы еще встретим множество примеров использования условных операторов и циклов в реальных ситуациях.
В следующей главе мы вернемся к общим темам, касающимся классов и объектов. Если вы соскучились по нашим виртуальным животным, продолжайте изучение материала.
ГЛАВА 3
Пересмотр методов экземпляра
Из гл. 1 мы узнали, как создавать методы экземпляра. В этой главе мы расширим полученные базовые знания, рассмотрев следующие дополнительные темы, касающиеся методов экземпляра:
? исключение ключевого слова this;
? связанные методы;
? методы получения и изменения состояния;
? get — и set-методы;
? дополнительные аргументы.
В процессе изучения нового материала мы продолжим разрабатывать программу, создающую виртуальный зоопарк, начатую в гл. 1. Однако перед началом работы уделите несколько минут повторению уже пройденного материала. В листинге 3.1 продемонстрирована самая последняя версия кода на момент завершения гл. 1.
Листинг 3.1. Программа «Зоопарк»
// класс VirtualPet package zoo { internal class VirtualPet {
internal var petName:
private var currentCalories = 1000:
private var creationTime:
public function VirtualPet (name) { this. creationTime = new Date( ): this. petName = name:
}
public function eat (numberOfCalories) { this. currentCalories += numberOfCalories:
}
public function getAge ( ) { var currentTime = new Date( ): var age = currentTime. time — this. creationTime. time: return age:
}
}
}
// класс VirtualZoo package zoo {
public class VirtualZoo { private var pet:
public function VirtualZoo ( ) { this. pet = new VirtualPet(«Stan»):
}
}
}
Исключение ключевого слова this
Как известно из гл. 1, ключевое слово this используется для обращения к текущему объекту внутри методов-конструкторов или методов экземпляра. Например, в следующем коде выражение thi s. petName = name говорит среде выполнения присвоить значение переменной экземпляра petName созданного объекта:
public function VirtualPet (name) { this. petName = name;
}
В следующем коде выражение this. currentCalories += numberOfCalories говорит среде выполнения присвоить значение переменной currentCalories того объекта, метод eat ( ) которого был вызван:
public function eat (numberOfCalories) { this. currentCalories += numberOfCalories;
}
Использование ключевого слова this в коде, в котором происходит частое обращение к переменным и методам текущего объекта, может оказаться утомительным, а также приведет к загруженности кода. Для упрощения и улучшения читабельности кода язык ActionScript позволяет обращаться к переменным и методам экземпляра текущего объекта вообще без использования ключевого слова this.