Руководство по actionscript. часть 3, стр. 013
На русском языке это будет выглядеть следующим образом: Существует конфликт с унаследованным определением flash. display:DisplayObject. x в пространстве имен public.
Директива import открывает пространства имен public. Стоит отметить, что с технической точки зрения импортирование пакета, как показано в следующем коде:
import somePackage.*;
открывает пространство имен public импортированного пакета. Тем не менее оно не открывает пространство имен internal импортированного пакета. Даже если пакет импортируется, его идентификаторы, объявленные с использованием модификатора управления доступом internal, остаются недоступными для внешнего кода.
Практические примеры использования пространств имен
В самом начале этой главы упоминалось четыре практических сценария использования пространств имен:
? предотвращение конфликтов именования;
? управление видимостью членов на уровне прикладной среды;
? управление доступом на основании разрешений;
? реализация различных режимов работы программы.
В предыдущем разделе рассказывалось, как пространства имен предотвращают конфликты именования. В этом разделе мы рассмотрим каждый из трех оставшихся сценариев на примерах из реальной жизни.
Пример: управление видимостью на уровне прикладной среды
Наш первый пример прикладного использования пространств имен взят из прикладной среды Flex компании Adobe — это библиотека компонентов пользовательского интерфейса и утилит для разработки интернет-приложений с широкими функциональными возможностями.
Прикладная среда Flex включает большое количество кода — сотни классов, размещаемых в дюжинах пакетов. Некоторые методы и переменные этих классов должны быть доступны в различных пакетах, но при этом они должны считаться внутренними по отношению ко всей прикладной среде. Возникает дилемма: если методы и переменные объявить с использованием модификатора управления до-
ступом public, код, находящийся за пределами прикладной среды, будет иметь к ним нежелательный доступ, но если их объявить с использованием модификатора управления доступом internal, эти методы и переменные нельзя будет использовать в других пакетах.