作业帮 > 综合 > 作业

AS3 中函数的参数 有什么用?

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/12 14:07:03
AS3 中函数的参数 有什么用?
AS3里的代码
例如:public function set direction(dir:uint):void{}
与 public function set direction():void
{
var dir:uint = new uint;
}
这两种 方式 定义的 dir 有什么区别呢?说具体点
你说的这个函数本身是特殊的,是setter函数,
第二种写法是错误的,编译不会通过.setter函数必须有一个确定的参数
关于setter函数,可以查看帮助文档~
set\x05定义关键字\x05
用法
function set property(newValue:*) :void{
\x05// 此处是您的语句
}
语言版本 :\x05ActionScript 3.0
Player 版本 :\x05Flash Player 9
定义一个 setter,它是一种在公共接口中作为属性出现的方法.setter 是一种特殊方法,它设置使用 var 关键字声明的属性的值.与其它的方法不同,调用 setter 时不使用括号 (()),这样 setter 看起来就像是变量.
通过允许创建私有属性的公共接口,Setter 允许您应用信息隐藏规则.信息隐藏的好处是:即使私有属性的基础实现发生更改,公共接口也会保持不变.
setter 的另一个优点是它们可在子类中覆盖,而使用 var 声明的属性则不能.
setter 的返回类型必须为 void 或未指定.
可以将 setter 与 getter 相接合来创建读写属性.要创建只读属性,请创建一个没有对应 setter 的 getter.要创建只写属性,请创建一个没有对应 getter 的 setter.
注意:仅支持在外部脚本文件中使用此关键字,而不支持在用。ー动作。ア面板编写的脚本中使用此关键字.
参数
property:* — set 修改的属性的标识符;此值必须与相应 get 命令中使用的值相同.
newValue:* — 要分配的新值.
示例
如何使用示例
下例通过定义 getter-setter 创建了名为 age 的读写属性.
package {
class User {
private var userAge:Number;
public function get age():Number {
return userAge;
}
public function set age(x:Number):void {
userAge = x;
}
}
}
在脚本中输入下面的代码:
var myUser:User = new User();
myUser.age = 25;
trace(myUser.age); // output:25
再问: 如果不是用Set 方法的话 是不是 两种定义出的效果都一样?
再答: 也不能说一样啊,你提供的代码不完整…… 第一个函数是带有参数的,dir是形参,第二种,dir是内部函数内部的变量。 只能说他们的dir变量的作用域是一样的