1) 这个问题考点就是条件运算.语法相当简单, 条件?肯定:否定;
正确的条案是a).
2) AS3是严格面向对象的语言.这意味着没有基类型, 每一个表达式(expression)都是对象的实例.
所以要直接用"."操作符调用对象的方法.只有一个例外:数字.
正确的答案是b), c), d), e), f).
3) AS3中可以在括号内连接多个表达式并返回最后一个表达式的值.可以想象为内联匿名函数.所以
正确答案是 c)
4) 这个和问题3)的解决方法一样, 但括号内不允许声明
正确答案是 e)
5) 不允许在括号内声明, 但可以将匿名函数赋给某个变量.所以
b)是正确的
6) 这个问题中包含了括号及内联(inline)XML的使用. 内联XML支持松散语法(relaxative syntax), 可以在XML内部添加AS注释.
看起来很复杂, 但d)是正确的.
7) AS3是面向对象的语言,但却不支持方法重载.所以a)是错误的. b)和c)都是正确的.
因为b)并不是重载, 而是声明为静态方法.
c)能通过编译,因为f1是在不同的命名空间声明的.
8) AS3的构造方法必需是public的, 且无返回类型.所以c),d),e)都是错误的.
有趣的是b),尽管没有修饰符,但它是正确的.不是默认的internal, 而是public.
9) "super()"只能在构造方法中调用, "this()"在语法构成上毫无意义,"this"也不能放在静态方法中.
所以, 正确答案是a)和e)
10) 这是AS3中dark side(应该怎么翻译?), 正常来讲三个答案都应该是错的.但是, b)是正确的.所以
答案是a)和c)
11) 当类第一次加载到内存中时, 静态初始化程序代码会首先执行.
正确答案是c).
12) 由问题7)可知,AS3不支持方法重载, 但方法可以声明在不同的命名空间中.如果类中声明了某命名空间,
且没有关联URI而初始化, 包名, 类名及命名空间将会在运行时进行URI解析(resolved as URI at runtime).
所以a)是正确的, b)是错误的, 因为命名空间有着相同的URI, 方法也就在同一个命名空间中了.
有趣的是,没有指明命名空间的方法, 实际上是处于含有空URI的命名空间中, 所以c)是正确的, d)是错误的.
a) and c)是正确选项.
13) AS3中的方法是闭包方法,在声明后可以直接调用.所以a)是正确的.
概要:
这个测试只是涵盖了AS3的一小部分特性.如果你没有全部答对也不必灰心.
当然, 不推荐你像5,6,10那样写代码.代码应该简洁,可读!
希望你能享受解题的快乐
Maxim Zaks is lead programmer of FDT (Development Tool forFlash) at Powerflasher.
Michael Plank is FDT evangelist at Powerflasher
访问fdt.powerflasher.com以获得更多信息 |