`

Java5.0与ActionScript3.0比较列表

阅读更多
语言结构/语法 Java 5.0 ActionScript 3.0
类包.jar.swc
继承class Employee extends Person{…}class Employee extends Person{…}
变量声明及初始化String firstName=”John”;
Date shipDate=new Date();
int i;
int a, b=10;
double salary;
var firstName:String=”John”;
var shipDate:Date=new Date();
var i:int;
var a:int, b:int=10;
var salary:Number;
未声明的变量n/avar myVar:*;
变量作用域声明在花括号内的,作用域也在括号内。
声明在函数里的,作用域即在函数里。
成员变量:声明在类里。
没有全局变量。
没有花括号作用域,最小的作用域范围是方法。
声明在函数里的,作用域即在函数里。
成员变量:声明在类里。
如果一个变量的声明不在任何类或方法里,那么它就是全局变量。
字符串不可变类不可变类
分号终结符必须的如果一条语句一行的话,你可以省略分号。
严格等于号n/a===
严格不等号:!==
常量符号关键字 final
final int STATE= 1;
关键字const
const STATE:int = 1;
类型检查静态的 (在编译时检查)动态的 (在运行时检查) 和静态的(也叫‘strict mode’, Flex Builder中是默认的)
类型检查符instanceofis – 检查数据类型, 例如 if (myVar is String){…}
as操作符n/a很像is操作符, 但是返回值不是布尔型而是表达式:
var orderId:String=”123”;
var orderIdN:Number=orderId as Number;
trace(orderIdN);//prints 123
原始类型byte, int, long, float, double,short, boolean, char所有的原始类型在ActionScript中都是对象。
Boolean, int, uint, Number, String
下面两行是相同的
var age:int = 25;
var age:int = new int(25);
复杂类型n/aArray, Date, Error, Function, RegExp, XML, and XMLList
数组的声明与实例化int quarterResults[];
quarterResults =
new int[4];
int quarterResults[]={25,33,56,84};
var quarterResults:Array
=new Array();
or
var quarterResults:Array=[];
var quarterResults:Array=
[25, 33, 56, 84];
AS3
也有以命名的方式代替元素序号的数组,类似Hashtable
最基础的对象ObjectObject
类型转换语法: Object类转为PersonPerson p=(Person) myObject;var p:Person= Person(myObject);
或者

var p:Person= myObject as Person;
向上声明class Xyz extends Abc{}
Abc myObj = new Xyz();
class Xyz extends Abc{}
var myObj:Abc=new Xyz();
package com.xyz;
class myClass {…}
package com.xyz{
class myClass{…}
}
ActionScript
的包不仅能包含类,也能包含独立的方法。
类访问级别public, private, protected
如果没有说明,该类就是能在包内访问。
public, private, protected
如果没有说明,类就是internal访问级的(类似Java中的包访问级)。
常规的访问级别:命名空间n/a类似XML的命名空间。
namespace abc;
abc function myCalc(){}

abc::myCalc(){}
use namespace abc ;
控制台打印System.out.println();// 只在debug模式下有效
trace();
Imports导入import com.abc.*;
import com.abc.MyClass;
import com.abc.*;
import com.abc.MyClass;
无顺序的键值对Hashtable, Map
Hashtable friends = new Hashtable();
friends.put(”good”,
“Mary”);
friends.put(”best”,
“Bill”);
friends.put(”bad”,
“Masha”);
String bestFriend= friends.get(“best”);
// bestFriend is Bill
var friends:Array=new Array();
friends[”good”]=”Mary”;
friends[”best”]=”Bill”;
friends[”bad”]=”Masha”;
var bestFriend:String= friends[“best”]
friends.best=”Alex”;
Another syntax:
var car:Object = {make:”Toyota”, model:”Camry”};
trace (car[”make”], car.model);
// Output: Toyota Camry
提升n/a编译器会将方法中所有变量声明提到顶端,所以你可以用一个变量名甚至在它声明之前。
实例化Customer cmr = new Customer();
Class cls = Class.forName(“Customer”);
Object myObj= cls.newInstance();
var cmr:Customer = new Customer();
var cls:Class = flash.util.getClassByName(“Customer”);
var myObj:Object = new cls();
私有类private class myClass{…}AS3中没有私有类
私有的构造函数支持不支持
类和文件名一个文件可以有多个类声明,但是只能有一个是public,并且这个文件名必须和这个类名一致。一个文件可以有多个类声明
包里能放什么类和接口, 接口, 变量, 方法, 命名空间, 和可执行的声明
动态类 (定义一个可以在运行时动态添加修改属性和方法的类).n/adynamic class Person {
var name:String;
}
//
动态的添加变量和方法

Person p= new Person();
p.name=”Joe”;
p.age=25;
p.printMe = function () {
trace (p.name, p.age);
}
p.printMe(); // Joe 25
方法 closuren/a.myButton.addEventListener(“click”, myMethod);
抽象类支持n/a
方法重载支持支持. 必须使用override声明
方法过载支持不支持
接口class A implements B{…}
接口可以包括方法的声明和静态变量。
class A implements B{…}
接口只能存放方法的声明。
异常处理关键字: try, catch, throw, finally, throws
未捕捉的异常会向上传递到调用它的方法。
关键字: try, catch, throw, finally
方法不必声明异常。

不仅可以抛出Error对象,也能抛出数字:
throw 25.3;
一旦有未捕捉的异常Flash Player立即停止脚本执行。
正则表达式支持支持

 

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics