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

В каждой области видимости ActionScript неявно открывает подходящее пространство имен для различных модификаторов управления доступом. Например, в каждой области видимости всегда добавляется глобальное пространство имен public в набор открытых пространств имен. На верхнем уровне пакета также добавляются пространства имен internal и publ ic данного пакета. В коде класса, который находится внутри пакета, также добавляются пространства имен private и protected данного класса. Таким образом, набор открытых пространств имен включает не

только пространства имен, открытые пользователем, но и пространства имен для управления доступом, которые неявно открываются в каждой области видимости.

Открыть пространства имен для управления доступом явно с помощью директивы use namespace невозможно. Среда выполнения открывает пространства имен для управления доступом автоматически, в соответствии с текущей областью видимости.

Пространства имен для модификаторов управления доступом определяют доступность идентификаторов и предотвращают конфликты именования. Например, в следующем коде суперкласс Parent и подкласс Child определяют переменную с одним и тем же именем, используя модификатор управления доступом private: description. Переменная description класса Parent недоступна для кода в классе Child, поскольку она уточнена пространством имен private класса Parent, которое не открывается в области видимости класса Child. Благодаря этому названия переменных не конфликтуют между собой.

package р { public class Parent. { private var description-.String = «A Parent object»; public function Parent ( ) { trace(description);

}

}

package p { public class Child extends Parent { private var description:String = «A Child object»; public function Child ( ) { trace(description); // Конфликта не происходит

}

}

}

Однако если переменную description класса Parent объявить с использованием модификатора управления доступом protected, возникнет конфликт. Рассмотрим почему. Во-первых, изменим модификатор управления доступом для переменной description на protected:

public class Parent { protected var description-.String = «A Parent object»;

}

Теперь представим себя на месте среды Flash, пытающейся выполнить код в конструкторе класса Child. Мы входим в конструктор и встречаем ссылку на идентификатор description. Чтобы разрешить этот идентификатор, мы должны проверить его существование в открытых пространствах имен. И какие же пространства имен открыты в конструкторе класса Child? Как мы уже знаем, в коде класса, который находится внутри пакета, среда Flash открывает пространства имен private и protected данного класса, пространства имен internal и public пакета и глобальное пространство имен public. Итак, открытыми пространствами имен являются:

? пространство имен private класса Child;

? пространство имен protected класса Child (которое уточняет все члены, унаследованные от непосредственного суперкласса);

? пространство имен internal пакета р;

? пространство имен public пакета р;

? глобальное пространство имен public;

? все пользовательские пространства имен, открытые явным образом.

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

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

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

Полезные ссылки
Случайные записи
  • 03.03.2011">Руководство по actionscript. часть 5, стр. 063
  • 27.08.2011">Размещение сервера в датацентре
  • 08.03.2011">Руководство по actionscript. часть 4, стр. 081
  • 14.03.2011">Руководство по actionscript. часть 3, стр. 072
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 076
  • 01.03.2011">Руководство по actionscript. часть 5, стр. 133
  • 22.01.2011">Руководство по actionscript. часть 1, стр. 121
  • 11.03.2011">Руководство по actionscript. часть 3, стр. 144
  • 22.01.2011">Руководство по actionscript. часть 1, стр. 122
  • 16.03.2011">Руководство по actionscript. часть 3, стр. 027
  • 09.03.2011">Руководство по actionscript. часть 4, стр. 063
  • 11.03.2011">Руководство по actionscript. часть 4, стр. 003
  • 12.03.2011">Руководство по actionscript. часть 3, стр. 134
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 038
  • 22.01.2011">Руководство по actionscript. часть 1, стр. 120
Опрос

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

View Results

Loading ... Loading ...