Руководство по actionscript. часть 1, стр. 131

Например, следующий код определяет переменную meal типа Food и присваивает этой переменной экземпляр класса Apple:

var meal:Food = new Apple( ):

Указанный код скомпилируется успешно как в строгом режиме компиляции, так и в стандартном режиме, поскольку класс Apple расширяет Food. В итоге экземпляры класса Apple принадлежат типу данных Food.

В отличие от этого следующий код присваивает переменной meal экземпляр класса VirtualPet:

var meal-.Food = new Vi rtual Pet( «Lucky»):

При использовании строгого режима компиляции указанный код приведет к ошибке несоответствия типов, поскольку экземпляры класса VirtualPet не принадлежат типу данных Food. По этой причине компиляция кода прекратится.

При использовании стандартного режима указанный код будет успешно откомпилирован. Тем не менее, поскольку значение (экземпляр класса VirtualPet) не принадлежит типу данных переменной (Food), среда выполнения Flash попытается привести (то есть преобразовать) значение к типу данных переменной на этапе выполнения программы. В данном случае тип данных переменной не является одним из примитивных типов, поэтому преобразование завершится неудачей и среда Flash сгенерирует ошибку несоответствия типов на этапе выполнения программы.

Рассмотрим другой пример. Следующий код определяет переменную pet Hunger типа int и присваивает этой переменной экземпляр класса VirtualPet:

var pet:Virtual Pet = new VirtualPet(«Lucky»); var petHunger:int = pet:

При компиляции указанного кода с использованием строгого режима произойдет ошибка несоответствия типов, поскольку экземпляры класса VirtualPet не принадлежат типу данных int. По этой причине компиляция кода прекратится.

При использовании стандартного режима указанный код будет скомпилирован успешно. Тем не менее, поскольку значение (экземпляр класса VirtualPet) не принадлежит типу данных переменной (int), среда Flash попытается преобразовать значение в тип данных переменной на этапе выполнения программы. В данном слу-

чае тип данных переменной является одним из примитивных типов, поэтому преобразование будет выполнено в соответствии с правилами, описанными в разд. «Преобразование к примитивным типам» этой главы. Таким образом, после выполнения указанного кода значением переменной petHunger будет являться 0.

Разумеется, предыдущий код наверняка разрабатывался не для того, чтобы переменной petHunger присвоить значение 0. Скорее программист просто забыл вызвать метод getHunger ( ) над экземпляром класса VirtualPet, как показано в следующем коде:

var pet-.Virtual Pet = new Vi rtual Pet( «Lucky»); var petHunger:int = pet. getHunger( );

В строгом режиме компилятор честно предупредит нас о проблеме, а в стандартном режиме — нет, предположив, что, поскольку типом данных переменной petHunger является int, мы хотим преобразовать объект VirtualPet в тип int. В нашем случае это предположение оказалось неверным, в результате чего программа получила неожидаемое значение.

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Оставить комментарий

Вы должны авторизоваться для отправки комментария.

Полезные ссылки
Случайные записи
  • 10.03.2011">Руководство по actionscript. часть 4, стр. 022
  • 24.03.2013">Чартерные рейсы на Мальдивы
  • 17.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.6
  • 04.03.2011">Руководство по actionscript. часть 5, стр. 035
  • 22.03.2011">Руководство по actionscript. часть 2, стр. 018
  • 16.03.2011">Руководство по actionscript. часть 3, стр. 032
  • 05.03.2010">Галереи креативных логотипов
  • 02.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.123
  • 26.02.2011">Руководство по actionscript. часть 6, стр. 053
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 035
  • 10.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.105
  • 12.03.2011">Руководство по actionscript. часть 3, стр. 135
  • 22.03.2011">Руководство по actionscript. часть 2, стр. 010
  • 27.02.2011">Руководство по actionscript. часть 6, стр. 035
  • 11.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.16
Опрос

Какие цвета вы предпочитаете?

View Results

Loading ... Loading ...