一、日期类型
与JS的Date类似,差别在于,创建一个Dtae对象时,要声明为Date类型的变量
var now:Date = new Date();
var millenium:Date = new Date(2000, 0, 1, 0, 0, 0, 0); //2000年1月1日午夜
二、字符串类型
1、创建字符串
引号使用、方法、属性等与JS相同,也有length属性,差别在于要声明变量类型
var str1:String = "hello"; 或者var str1:String = new String("hello");
三、数组类型
(一)类型
1、Array类
Array类型的数组,同一个数组中的数据可以有不同的数据类型,同JS。而且其索引值可以没有数据。
var oddNumbers:Array = [1, 3, 5, 7, 9, 11];
2、Vector类
①Vector是指定类型的数组。
声明Vector类数组:var names:Vector.<String> = new Vector.<String>();
②Vector是一种密集数组:即Vector类的每个索引位置都必须有值。而且只能在当前索引或者索引[length]处赋值,不可跳过赋值
③Vector可以指定长度,而且长度可以固定(第二参数为true)。
var ages:Vector.<uint> = new Vector.<uint>(7,true); //指定长度为7,且长度固定
(二)多维数组
如:
masterTaskList[0] = ["wash dishes", "take out trash"]; //masterTaskList[0][0]= wash dishes
(三)克隆数组
通过不带参数的concat() 或 slice() 方法,可以创建数组的“浅副本”(如果原始数组具有对象元素,则仅复制指向对象的引用而非对象本身。)
(四)扩展Array类
可以使用extends来继承Array类的子类。
三、类与对象(与JAVA类似)
(一)构造函数
1、构造方法负责对象的初始化工作。需要遵循以下几点:
①方法名与类名相同
②不要返回类型,如return void等
③不能被static / final / native / abstract等修饰,不能被子类继承。
2、构造方法可以重载,根据传入参数不同。默认构造方法是无参的构造方法。
3、用super调用父类的构造方法时,super()必须作为构造方法的第一条语句。
4、当将构造方法声明问private访问级别时:
只能在当前类中访问它,禁止这个类被继承,不允许其他程序通过new创建这个类的实例。
(二)类方法和实例方法
1、类方法:用static修饰(静态方法)
当类的字节码文件加载到内存中,类方法的入口地址就会被分配。所以类方法可以被该类的对象调用,也可以直接通过类名调用。由于类方法比市里方法早,所以要遵循以下规则:
①在类方法中不能引用实例变量(没有用static修饰的变量)和实例方法
②在类方法中不能使用super和this(对象可能还没创建)
2、实例方法:没用用static修饰的(非静态方法)
当该类的对象创建以后,实例方法才分配了入口地址,而且该类的所有对象共享实例方法的入口地址,类的所有对象被销毁时,入口地址才会消失。
四、接口interface
定义:【修饰符】interface接口名extends父接口1,.......//不用extends父接口1...就是定义接口
{ //零到多个常量定义、抽象实例方法定义..... }
使用:语法:【修饰符】class类名extends父类implements接口1,接口2......{ 类体 }。
1、修饰符可以是public,省略public则是包访问权限
2、接口里所有成员都是public修饰。属性默认为public static final ,方法默认为public abstract
3、一个类继承了一个接口之后,必须完全实现这些接口里所定义的全部抽象方法(重写,且必须是public修饰符)