![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Sep 2009
Сообщений: 130
|
Привет.
package zoo{ public class VirtualZoo{ public function VirtualZoo() { new VirtualPet(); } } } package zoo{ internal class VirtualPet{ public function VirtualPet(){} } } 2. Класс - internal с методом public. Будет ли доступен такой метод из других пакетов? Последний раз редактировалось TommyLee; 20.09.2009 в 19:43. |
|
|||||
|
Modus ponens
|
1. конструктор в AS3 обязан быть публичным.
2. internal во втором случае для проформы. И указание пакета там вообще не нужно. Этот класс все равно попадет в приватный неймспейс первого (и единственного) публичного класса в этом файле. 3. Все что угодно c модификатором доступа internal ни при каких обстоятельствах не будет доступно в других пакетах. Очевидно, internal записывает имя пакета, так что, даже если вы отнаследуетесь от класса объявившего internal метод или свойство в другом пакете, это свойство / метод будет вам не доступно в классе-наследнике.
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Jan 2008
Сообщений: 669
|
1. По умолчанию всегда и везде public
2. Вы не сможете создать экземпляр internal класса из другого пакета, следовательно не сможете обратиться к его методам UPD: 1. Ну по крайней мере для переменных и функций . Думал, что и для классов. В любом случае лучше всегда конкретно объявлятьПоследний раз редактировалось Kuruki; 20.09.2009 в 19:55. |
|
|||||
|
стервочка (я мужик)
|
Kuruki, по умолчанию всегда internal.
|
|
|||||
|
Регистрация: Sep 2009
Сообщений: 130
|
да, по умолчанию всегда internal, иначе бы в главном классе не нужно было обязательно писать public, да и в конструкторе главного класса... Про то, что public нужно писать и в конструкторах "не главных" классов (хоть они и в одном пакете с вызывающим их "главным" классом) - не знал, у автора не слова, а я голову ломал - думал упустил чего
![]() по поводу второго вопроса. Я так понял, если класс internal, то его паблик метод из другого пакета не вызовешь? |
|
|||||
|
Modus ponens
|
>> по поводу второго вопроса. Я так понял, если класс internal, то его паблик метод из другого пакета не вызовешь?
Если вы как-нибудь получите ссылку на объект этого класса в другом пакете - то вполне даже вызовете, а если метод будет internal - то нет.
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Jan 2008
Сообщений: 669
|
Цитата:
![]() Действительно ![]() |
|
|||||
|
Регистрация: Sep 2009
Сообщений: 130
|
Цитата:
Вопросов по теме нет. |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:40. |
|
|
« Предыдущая тема | Следующая тема » |
|
|