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

Приведение типов

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

компилятор полагается на аннотации типов. Предположим, что компилятор встретил обращение к методу, выполненное через типизированную переменную. Чтобы выяснить, является ли данное обращение корректным, компилятор проверяет наличие описания вызываемого метода в классе или интерфейсе, указанном в аннотации типа данной переменной. Если метод, к которому происходит обращение, не определен в указанном классе или интерфейсе, компилятор генерирует ошибку обращения.

Обратите внимание, что необходимость генерации ошибки обращения определяется исходя из класса или интерфейса, указанного в аннотации типа, а не фактического класса значения, хранящегося в данной переменной.

Рассмотрим следующий код, в котором метод hasWorm ( ) вызывается над объектом Apple через переменную типа Food:

var meal:Food = new Apple( ):

meal. hasWorm( ); // Попытка вызвать метод hasWorm( ) над объектом, // хранящимся в переменной meal

При компиляции предыдущего кода в строгом режиме компилятор должен решить, может ли метод hasWorm ( ) быть вызван над значением переменной meal. Для этого компилятор проверяет, определен ли в классе Food (то есть в классе, который указан в аннотации типа переменной meal) метод hasWorm ( ). В этом классе определение данного метода отсутствует, поэтому компилятор генерирует ошибку обращения. Конечно, глядя на этот код, мы знаем, что значение переменной meal (объект Apple) поддерживает метод hasWorm ( ). Однако этого не знает компилятор. Среда выполнения Flash только на этапе выполнения узнает, что значением переменной на самом деле является объект Apple.

Каково же решение? Использовать операцию приведения типов, чтобы заставить компилятор разрешить предыдущий вызов метода hasWorm ( ). Операция приведения типов приказывает компилятору рассматривать данное значение как принадлежащее указанному типу данных. Эта операция имеет следующий обобщенный вид:

тип{выражение)

В этом коде тип — это любой тип данных, а выражение — любое выражение. Говоря простым языком, эта операция «приводит выражение к указанному типу тип». Например, следующий код приводит выражение meal к типу данных Apple перед вызовом метода hasWorm ( ) над значением переменной meal: Apple(meal).hasWorm( )

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

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

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

Полезные ссылки
Случайные записи
  • 22.03.2011">Руководство по actionscript. часть 2, стр. 004
  • 03.12.2012">Где расслабиться после работы?
  • 14.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.74
  • 11.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.20
  • 23.02.2011">Руководство по actionscript. часть 7, стр. 024
  • 05.03.2011">Руководство по actionscript. часть 5, стр. 019
  • 03.03.2011">Руководство по actionscript. часть 5, стр. 067
  • 16.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.25
  • 13.03.2011">Руководство по actionscript. часть 3, стр. 092
  • 10.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.97
  • 15.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.54
  • 27.07.2011">Ремонт видеокарт поручайте профессионалам
  • 20.01.2010">Векторные файлы и графика
  • 05.08.2014">Альпийская горка – важный элемент ландшафтного дизайна
  • 14.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.73
Опрос

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

View Results

Loading ... Loading ...