浏览 4375 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|||
---|---|---|---|
作者 | 正文 | ||
发表时间:2008-07-09
7.1 了解 ActionScript 3.0
在AS3.0中所有一切都是对象,每个对象都具有自己的属性和方法。
在面向对象的程序设计中,对象必须被定义为类,它具有如下面向对象的特性:
抽象类:无法产生对象,定义很广泛,范围很大,无法有与之对应的具体实现。用来被其子类继承,它的子类必须定义了父类的抽象方法。 7.2 AS 3.0 的面向对象语法
7.2.1 创建类和对象 在ActionScript 中,类以as 为扩展名,文件名和类名相同。区分大小写,基本语法:
package :类所属的包,一个类必须被放在包中。一个包对应文件系统中的一个文件夹,多层级的包对应多层级的文件夹,层级之间用点号分开:package mx.controls
类和变量以及函数名都遵循相同的命名规则,只能由字母、数字和下划线组成,不能以数字开头。类的定义必须在package 里面。 在一个AS类文件中,只能有一个public 类型的类,位于package 里面,且文件名必须和这个类名相同。 类有以下的修饰词:
在一个as文件中,可以定义多个类,但只能一个类位于package 中。 var 对象名:类名 = new 类的构造函数(); //实例化一个类 var 关键字用来声明一个变量或对象。 如果使用的类和代码所在的对象不在同一个包时,需要用 import 关键字将它引用进来:import 类的路径 类的构造函数:定义变量时被调用,跟类名相同的函数,必须是public类型,且没有返回值。构造函数是可选的,当没有定义时,编译器会自动添加一个空的函数。
属性是定义在类中的变量或者常量,而方法则对应一个函数,当调用类的方法时,也就是执行一个函数来完成相应的功能。
属性定义:定义一个类型为String的属性str,并符初始值"Hello" private var str:String = "Hello"; 方法:定义了一个方法ff 返回值为空,方法必须定义返回值 public function ff():void{//方法代码}; 使用关键字 this 代表当前对象,指向类的实例。只有在创建类的实例时,this 才确立了自己的身份。 属性和函数有以下修饰词:public > internal > protected > private
函数参数默认值:如果调用函数时没有传入值,则使用默认值。 public function doTest(s:String = "默认值"):void{//代码} 函数的不定参数:参数的个数可以动态改变,不定参数使用...args 的形式,其中args是一个数组,存放了所有的参数。比如: public function doTest(...args):void{ args[0]; args[1]; ..... } 调用时: doTest("参数1","参数2",...);
类的属性或者函数具有唯一性,即使类没有被实例化,它们也始终存在于内存中,不管类有多少个实例,静态属性和函数都只有1个,且和实例没有关系。
静态函数只能访问类的静态变量和静态函数。 定义静态类型:使用关键字 static ,其中public 和static 位置可以对调。 public static var str:String = "Hello"; public static function doTest(s:String):void{} 定义常量:常量的值在确认后就不能改变,使用关键字 const 定义: public const STR:String = "我是常量"; 如果将常量定位为静态类型,就成为了类的 静态常量。 一般采用大写字母定位常量。
7.2.4 继承
继承是指在已有类的基础上加新的属性和方法,保留了已有类的属性和方法。
AS 3.0 只允许一次继承一个父类。 子类可以访问父类中 public 和protected 类型的属性和函数,如果父类和子类中同包下,可访问internal类型的属性和方法,但private是无法访问的。 子类不能定义父类非private类型的属性和方法。 继承类使用关键字 extends: public class subFl extends Fl 覆盖父类的方法:使用关键字 override ,在覆盖时,方法的格式必须是一样的。 父类方法:protected function doTest():void; 覆盖的方法:override protected function doTest():void; 调用父类的方法:super.doTest(); 使用final 关键字定位为类不能被继承。
AS3.0 没有提供定义抽象类的方法,只提供了接口。
接口是若干方法的集合,它只声明这些方法,而不实现方法。描述一类具有共同特性的对象,这些对象都实现了接口中的方法,同时有自己的特点。 接口只支持:public 或者 internal 定义接口: public interface IExample{ function start(task:String):void; function stop(task:String):void; } 接口也可以实现继承,一次能继承多个接口: public interface IExample extends Iinterface1, Iinterface2 接口的实现:implements ,一次可以实现多个接口,用逗号分隔。 public class Example implements IExample{ public function start(task:String):void{ // } public function stop(task:String):void{ // } } 在实现类中,必须定义接口中所有的方法,且遵循以下规则:
同时继承类和实现接口: public class Example extends Canvas implements IExmple 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|||
返回顶楼 | |||