快速业务通道

《 Essential ActionScript 2.0 》中文精华版 第 11 期

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-12


4.4 Methods (方法) 方法method就是一些函数,而这些函数决定了该类的行为。它们来执行那些类实例或者类本身可能需要完成的的任务。例如,ActionScript的内建类Sound类有一个名为loadSound( )的方法,该方法可以得到外部MP3文件以便在Flash Player中播放。 为了给类定义方法,我们在类体定义中使用function语句,如下所示:
class ClassName {
function methodName (param1:type, param2:type,...paramn:type):returnType {
statements
}
}其中methodName 称为该方法的标识符identifier
param1:type, param2:type, ...paramn:type 是该方法的参数列表;
returnType 是该方法返回值的数据类型;
statements 是当该方法被调用时的被执行零个或多个语句。
每个参数定义由一个参数名(param1),一个冒号(:)和一个用于指示参数数据类型的类型标识符(type)组成。 比较:在ActionScript 1.0中定义方法的方式。(略之) 在一个方法内部,可以通过参数名直接引用参数。例如,以下方法square( ),定义了一个参数x,并在方法内如直接引用:
function square (x:Number):Number {
return x * x;
}如果在该方法定义中省略参数类型,那么对于该参数将不执行类型检查(允许该参数接受任何数据类型的值)。同理,若省略返回值类型,则对于返回值将不执行类型检查。然而,如果一个方法没有返回值,那么其类型应该设置为Void(用大写V)来表明该方法没有返回值。 提示:用Void表示返回值类型时必须用大写V。(略之) 如果你的方法的返回值类型是Void,那么要保证确实没有返回任何值。当一个方法指定返回值类型是Void但返回了一个值时,那么在编译时输出面板会出现以下错误: 返回类型为 Void 的函数不能有返回值。 在多数情况下,以上错误是一个有用的调试工具。这意味着,你可能设计该方法没有返回值但是偏离了原始设计,在执行该方法时返回了一个值。如果发生了这种情况,你应该任选以下做法: ? 改变你的设计以便可以反映方法的返回值类型(即,在方法声明中指定正确的返回值数据类型) ? 改变你的方法,让它不返回任何值,从而坚持你的原始设计(即,Void仍是正确的返回值数据类型) 相反地,当一个方法指定了某个返回值类型而非Void但返回了一个类型与指定类型不匹配的值时,编译器将产生以下错误: 返回的表达式必须与函数的返回类型相匹配。 而且,当一个方法指定了某个返回值类型而非Void但未包含return语句时,编译器将产生以下错误: 此函数中需要返回语句。 可见,只有参数和返回值类型与指定类型相一致时,你的方法才能顺利通过编译。 理论已经够多了。让我们来看一个例子,为我们的Box类添加一个getArea( )方法:
class Box {
private var width:Number = 0;
private var height:Number = 0;

// 这里是方法定义
function getArea ( ):Number {
return width * height;
}
}getArea( )
方法定义以function关键字开始,随后是方法名getAreagetArea( )方法没有参数,因此参数列表是一对空的小括号( ):Number表明了getArea( )方法将返回一个Number类型的值。当调用getArea( )方法时,将返回widthheight的结果,这将是一个数字值(与声明的一致)。 我们的方法定义的最后一部分是声明块,封闭在一对的花括号内:
{
return width * height;
}注意,我们通过属性名直接引用属性widthheight。在一个方法内部,可以直接引用属性,无需引用任何一个对象(这种情况下是实例属性)或一个类(这种情况下是类属性)来限定。 在一个方法定义中,方法标识signature——由方法名和参数列表组成——使该方

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号