PDA

Просмотр полной версии : Что означает эта конструкция?


Random SunFire
15.11.2007, 13:54
var mclListener:Object = new Object();
Сорри за тупой вопрос, но что это за конструкция такая. Очень сложно найти в хелпе что-то на запрос по ":"!

CrazyFlasher
15.11.2007, 13:56
var mclListener:Object; - то что после двоеточия определяет тип переменной

Mr. Fixit
15.11.2007, 14:03
создание переменной экземпляра класса Object с типом данных Object.

Random SunFire
15.11.2007, 14:06
А разве при создании переменной экземпляра класса Object типых данных не будет автоматически Object?

CrazyFlasher
15.11.2007, 14:32
var mclListener:Object; // декларируешь
mclListener = new Object(); //создаёшь

//или одной строчкой
var obj:Object = new Object();


хотя там полная каша с типизацией, если ты пишешь не на классах

screamge
15.11.2007, 14:55
Типизация не является обязаловкой в АС2, вы можете не типизировать хоть типизированый код во-первых облегчает и ускоряет разработку, во-вторых уберегает от человеческих ошибок (исключает возможность присвоения некорректного значение), в третьих считается хорошим тоном для программистов АС. При типизации, если вы пишите код в ИДЕ, появляются хинты соответствующих классов, если не в иде а в другом редакторе по умолчанию нетипизированый код будет выдавать ошибку.

При создании нового объекта он конечно будет относится к тому классу которым вы его объявили но:


var obj = new Object ();
var str:String = obj;

Не выдаст ошибки, когда:

var obj:Object = new Object ();
var str:String = obj;



Type mismatch in assignment statement: found Object where String is required.





хотя там полная каша с типизацией, если ты пишешь не на классах

В чём выражается?

CrazyFlasher
15.11.2007, 15:03
в том что не обязательная типизация =) в коде на классах, конечно, типизацию нельзя назвать мегастрогой, но она хотя бы есть (правда обмануть легко :))

screamge
15.11.2007, 15:13
Так в классах тоже можно не типизировать и переменые не выносить в приватные/публичные свойства, и геттерами/сеттерами не пользоваться, не знать что такое композиция и как пользоваться наследованием, закрывать глаза на отсутвие Void и писать функцию в функции...ещё много чегом можно и для неграммотного разницы никакой нет где писать, в классе или на 36 кадре 25 мувиклипа третьей сцены :)

Кстати я сеттерами очень редко пользуюсь :)

Чуть-чуть отойдём от темы если позволите,
http://riapriority.com/blogs/junik.php/2006/11/21/oop_und_flash2

Со всем согласен, раньше ловил себя на 1 пункте (если не вспоминать о "совсем раньше" :) ).

CrazyFlasher
15.11.2007, 15:47
ух ты =) я не попал ни под один пункт :)

P.S. насчёт сеттеров согласен...независимость классов теряется если их всюду пичкать

CorC
16.11.2007, 10:22
А что если я попал под 5, то это тоже плохо? не понимаю почему

screamge
16.11.2007, 10:34
Ты попал под событийную модель или под компоненты?

CorC
16.11.2007, 10:48
Под компоненты, лучше уж самому написать :)

screamge
16.11.2007, 11:11
Я расцениваю тему компонентов как плохой пример не использования событийной модели. Во времена флекса никто на эту тему ничего сказать не сможет :)