PDA

Просмотр полной версии : Спецы ООП подскажите (проблема с наследованием)


STILL.05
24.04.2006, 14:40
class Still {
private var x0:Number = 100;
}
// *******************
var stl:Object = new Still();
trace(stl.x0);

Выводит 100! по идее свойство должно быть скрытым?
Интересная особенность если указать var stl:Still= new Still();
то свойство не видно, почему такая разница?

etc
24.04.2006, 14:52
Потому что в твоей переменной, указанной, как Object нет приватной переменной x0, её никто приватной не делал.
Да и потом, после компиляции (если ролик всё-таки скомпилировался без ошибок) вся эта приватность теряется. Так что ничего удивительного тут нет.
Совсем иначе будет в AS3.

silin
24.04.2006, 14:56
если тип не указан, то проверка(при компиляции) не выполняется..
зы: даже если указан свойство все равно видно : trace(stl["x0"])

etc
24.04.2006, 14:57
Но лучше не обманывать компилятор, в будущем это встанет бооооооольшой проблемой

MyXus
24.04.2006, 15:17
Совсем иначе будет в AS3Интересно, а как это "будет"? Вот у меня стоит флэш 8-й, я юзаю классы. А где грань различия между AS-x ?

etc
24.04.2006, 15:47
Ну если переменная приватная, она будет приватной и проверка её приватности будет работать не только на стадии компиляции, но и во время работы ролика. Правда, пойдут другие проблемы. Если у тебя не существует объект и ты к нему ссылаешься, то весь твой ролик рухнет и перестанет выполнятся. И понять, в чём дело, будет довольно сложно)

MyXus
24.04.2006, 15:59
мда. грустно. но
1) компилятор то один и тот же? прально? значит и так и так все теперь пишут на АС3.
2) можно использовать токо паблики :-)
3) чтобы ролик не рухался использовать конструкторы-деструкторы и только методы класса..

etc
24.04.2006, 16:02
"Пишут" это громко сказано. Пишут в Eclipse, компилят классы MTASC-ом в ролик и смотрят в Flash Player 8.5
А восьмой флеш почти не используется (разве что для первоначальной компиляции пары строк в самом ролике)
Нет ещё родного компилятора в AS3

silin
24.04.2006, 16:02
Если у тебя не существует объект и ты к нему ссылаешься, то весь твой ролик рухнет и перестанет выполнятся...
примерчик можно ?

etc
24.04.2006, 16:04
silin, к сожалению, нет.
Лучше у Antares-а спросите, я несколько далёк от написания классов на AS3

silin
24.04.2006, 16:11
странно все это слышать: полгода как альфа Flex'а вышла, бета2 на дворе, релиз на подходе, а тут:совсем иначе будет в AS3.., нет ещё родного компилятора в AS3.., весь твой ролик рухнет..