ActionScript的setter/getter

getter 和 setter 方法的语法如下所示:

* getter 方法不能有任何参数,始终返回一个值。
* setter 方法始终带一个参数,从不返回任何值。

类通常会定义 getter 方法和 setter 方法来分别提供对给定属性的读访问和写访问。例如,假设某个类包含一个名为 userName 的属性:

private var userName:String;

该类不允许其实例直接访问这个属性(例如 user.userName = "Buster"),而改为提供两个方法 getUserName 和 setUserName,其实现如下一个示例所示。
使用 getter 和 setter 方法:

1. 选择"文件">"新建",再选择"ActionScript 文件",然后单击"确定"。
2. 在"脚本"窗口中键入以下代码:

class Login {
private var __username:String;
public function Login(username:String) {
this.__username = username;
}
public function getUserName():String {
return this.__username;
}
public function setUserName(value:String):Void {
this.__username = value;
}
}

3. 将 ActionScript 文档保存为 Login.as。

您可以看到,getUserName() 返回 userName 的当前值,而 setUserName() 将 userName 的值设置为传递给该方法的字符串参数。
4. 选择"文件">"新建",然后选择"Flash 文档",以创建一个新的 FLA,将其保存到与 Login.as 相同的目录下,文件名为 login_test.fla。
5. 将下面的 ActionScript 添加到主时间轴中的第 1 帧:

var user:Login = new Login("RickyM");

// 调用 getUserName() 方法
var userName:String = user.getUserName();
trace(userName); // RickyM

// 调用 setUserName() 方法
user.setUserName("EnriqueI");
trace(user.getUserName()); // EnriqueI

6. 选择"控制">"测试影片"对文件进行测试。

Flash 会将以下信息显示在"输出"面板中:

RickyM
EnriqueI

但是,如果要使用更简明的语法,可以使用隐式 getter 和 setter 方法。利用隐式 getter 和 setter 方法能够以直接访问的方式访问类属性,同时还可以保持良好的面向对象编程惯例。

若要定义这些方法,应使用 get 和 set 方法属性。首先应创建用于获取或设置属性值的方法,然后在方法名前面加上 get 或 set 关键字,如下一个示例所示。

注意




隐式 getter 和 setter 方法是对 ActionScript 1.0 中 Object.addProperty() 方法的句法简化。
使用隐式 getter 和 setter 方法:

1. 选择"文件">"新建",再选择"ActionScript 文件",然后单击"确定"。
2. 在"脚本"窗口中键入以下代码:

class Login2 {
private var __username:String;
public function Login2(username:String) {
this.__username = username;
}
public function get userName():String {
return this.__username;
}
public function set userName(value:String):Void {
this.__username = value;
}
}

3. 将 ActionScript 文档保存为 Login2.as。

切记,getter 方法不带任何参数。而 setter 方法必须正好有一个必要参数。setter 方法与同一作用域内的 getter 方法可以具有相同的名称。但 getter 和 setter 方法不能与其它属性同名。例如,在上面的示例代码中,您定义了名为 userName 的 getter 和 setter 方法;在此情况下,在同一个类中就不能再有名称也为 userName 的属性了。
4. 选择"文件">"新建",然后选择"Flash 文档",以创建一个新的 FLA,将其保存到与 Login2.as 相同的目录下,文件名为 login2_test.fla。
5. 将下面的 ActionScript 添加到主时间轴中的第 1 帧:

var user:Login2 = new Login2("RickyM");

// 调用"获取"方法
var userNameStr:String = user.userName;
trace(userNameStr); // RickyM

// 调用"设置"方法
user.userName = "EnriqueI";
trace(user.userName); // EnriqueI

与普通方法不同,调用 getter 和 setter 方法时,方法名后面不带任何括号或参量。调用 getter 和 setter 方法与调用同名属性类似。
6. 保存 Flash 文档,然后选择"控制">"测试影片"对文件进行测试。

Flash 会将以下信息显示在"输出"面板中:

RickyM
EnriqueI
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值