ActionScript 3.0 наиболее определенно ближе к Java, чем к C ++, если говорить о возможностях: он поддерживает интерфейсы, одиночное наследование и метаданные. Это отличается от обоих в синтаксисе, хотя. Самое большое различие для меня при переходе от стиля C / C ++ / Java к ActionScript - это определение переменных. В C, чтобы объявить int, вы должны сделать следующее:
int x = 0;
В то время как в ActionScript 3 это будет сделано так:
var x : int = 0;
Требуется переменная, а тип указывается после двоеточия.
Аналогичные изменения необходимы для функций. В С:
void foo(int x) { //yeah }
А в ActionScript 3:
function foo(x: int) : void { //yeah }
ActionScript 3 также поддерживает метаданные посредством использования скобочных операторов []. Наиболее распространенные метаданные, которые вы, вероятно, будете использовать, это Bindable, который позволяет привязать переменную после объявления Bindable к компоненту, который автоматически обновляется при изменении переменной.
[Bindable]
var x : int = 0;
Это, пожалуй, самые вопиющие различия между стилем C и AS, которые я могу себе представить. Если вы используете Flex, MXML предоставит совершенно новый набор синтаксиса и возможностей для изучения.
Редактировать: Только что вспомнил пару вещей: в ActionScript 3 нет перегрузки конструктора. Вы застряли с конструктором по умолчанию. Если вы хотите добавить дополнительные параметры, вы должны сделать это так:
class Foo
{
public function Foo( x : number, y : int = 3, z : string = "default") : void
{ //stuff here }
}
В приведенном выше примере x требуется, но оба значения y и z являются необязательными и будут иметь значения по умолчанию 3 и «по умолчанию» соответственно.
Что касается вашего вопроса о классах объектов, здесь - хорошая статья, детализирующая различия между Java и AS3.
Это объяснит, что такое объекты класса - по сути, каждое объявление класса является экземпляром класса Class. Это немного сбивает с толку, но когда вы приступите к этому, это не изменит того, как вы программируете или как AS3 выполняет OO. AS3 OO очень близко к Java OO.