FlashAS学习:构造函数小结
2008-04-02 10:44:05来源:互联网 阅读 ()
一、构造函数的差别性
构造函数是个特别的成员函数,和成员函数具备一起性和差别性。例如:构造函数和成员函数相同,通过function关键字来定义,能够声明为private或public,能够在构造函数中加入参数等。
一、构造函数的差别性主要体现在:
l构造函数名和类名必须相同,并且区分大小写;
l构造函数不能声明为static,他只能是private或public;
l构造函数中不能使用return语句返回一个值;
l构造函数不能返回指定的数据类型;
当违反以上规则时,flash会在输出面板提示相应的信息。
1、在下面的Load类我们定义一个成员函数load:
functionload(){
}
}
进行语法检查时,flash会提示以下的信息:
成员函数“load”和定义的类的名称“Load”大小写不同,在运行时将被视为类构造函数。
2、假如我们在构造函数中声明了static属性:
staticfunctionLoad(){
}
}
flash将提示:
允许用于构造函数的属性只有public和private
3、假如我们在构造函数中使用了return语句返回一个值:
vari=0;
functionLoad(){
returni;
}
}
flash将提示:
构造函数不能返回值
4、假如我们在构造函数中返回了一个数据类型:
functionLoad():Load{
}
}
flash将提示:
构造函数不能指定返回类型
二、构造函数的返回值
虽然在构造函数中不能用return返回一个值,但构造函数有返回值,他返回的是为该类的实例。
如:
functionLoad(){
}
functiontoString():String{
return"Load类的实例";
}
}
测试方法:
在输出面板中输出:
Load类的实例
在类中加入toString方法的原因:
当Load类的对象作为字符串对待时,toString()方法会自动调用,这个方法在使用trace()调试类的属性、实例等时很有用,所以在有构造函数的类里面,一般都配有toString()方法,位置放在构造函数的后面。
假如没有toString()方法,测试结果可不是我们想要:
[objectObject]
在创建类的实例时,一般都要指定一个实例名:
vart:Load=newLoad();
以上的代码的执行过程:
l创建一个Load类的对象,并为该对象分配存储空间。
l调用Load类的构造函数,初始化这个新建的对象。
l声明一个Load类的实例的引用t即实例名,使其指向这个新的对象。
通过实例名就能够使用实例属性和实例方法:
实例名.属性
实例名.方法名()
三、构造函数的参数传递
当用构造函数创造类的实例时,常常要初始化一些类的属性,这些属性通常用构造函数的参数来传递。
privatevar_str:DrawString;
privatevar_shape:Shape;
publicfunctionToolTip(str:DrawString,shape:Shape){
_str=str;
_shape=shape;
}
//配置和获取属性的代码
}
假如参数名和属性名相同,能够使用this关键字来指向类的实例,通过点语法把参数传递进来:
privatevarstr:DrawString;
privatevarshape:Shape;
publicfunctionToolTip(str:DrawString,shape:Shape){
this.str=str;
this.shape=shape;
}
}
使用:
在构造函数的参数传递中,也存在着地址传递和数值传递的问题,这特别要引起注意。如下面两个参数不同传递方式的例子:
地址传递:
functionBox(a:Array){
a[0]=5;
trace(a[0]);
}
}
vara=["1"];
vart:Box=newBox(a);
trace(a[0]);
//5
//5
数值传递:
functionBox(a){
a=5;
trace(a);
}
}
vara=1
vart:Box=newBox(a);
trace(a);
//5
//1
关于参数传递的原理可参考书
在as2中,不支持构造函数的重载,即在一个类中定义多个构造函数,但能够通过条件语句进行模拟(实际上只有一个构造函数),通过对参数的判断如参数的类型的检查来执行不同的代码。在flash中,Array类的构造函数能够接受不同的参数,产生不同的实例,我想实现方法应和此类似。
四、空构造函数和私有构造函数
假如在一个类里含有一个空构造函数(默认是public的,见上面的第1个例子),意为这个类无需初始化,因为一个类的初始化代码一般都放在构造函数中。但空构造函数也有可能是个没有完成的构造函数,在编写其他类代码后,将会在构造函数中补充代码,这也是编程常用的方法。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇: Flash音乐播放器可多曲连放 原文档
下一篇: 从Js调用一个AS方法
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash