Flex set和get关键字用法

 

1、set

set   definition keyword 

用法
 
function set property(newValue:*) : void{ 
 // your statements here 
}

语言版本 :ActionScript 3.0
RuntimeVersions:Flash Player 9

定义一个 setter 方法,用作公用接口中的属性。 setter 是一种特殊的方法,它可以为使用var 关键字声明的属性设置值。与其他方法不同,调用 setter 时不需要使用圆括号 (()),这使得 setter 看起来像是变量。

您可以使用 setter 为私有属性创建公用接口,进而应用信息隐藏原则。隐藏信息的优点在于即使私有属性的基础实现发生更改,公用接口仍保持不变。

setter 的另一项优点是在子类中可以被覆盖,而使用 var 声明的属性则不可以。

setter 的返回类型必须是 void 或不指定任何类型。

setter 可与 getter 结合使用来创建可读写的属性。若要创建只读属性,需要创建一个不带相应 setter 的 getter。若要创建只写属性,需要创建一个不带相应 getter 的 setter。

注意:仅支持在外部脚本文件中使用此关键字,而不支持在使用“Actions”面板编写的脚本中使用此关键字。

参数
 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); // 25
 
 
2、get
   
   
getdefinition keyword 
用法
 
function get property() : returnType{ 
 // your statements here 
}

语言版本 : ActionScript 3.0
RuntimeVersions: Flash Player 9

定义一个 getter 方法,可以像读取属性一样读取该方法。 getter 是一个特殊的函数,它返回使用 varconst 关键字声明的属性的值。与其它方法不同,调用 getter 时不需要括号 (()),这使得 getter 看起来像是一个变量。

您可以使用 getter 为私有属性创建公用接口,进而应用信息隐藏原则。隐藏信息的优点在于即使私有属性的基础实现发生更改,公用接口仍保持不变。

getter 的另一项优点是在子类中可以被覆盖,而使用 varconst 声明的属性则不可以。

getter 可与 setter 结合使用来创建可读写的属性。若要创建只读属性,需要创建一个不带相应 setter 的 getter。若要创建只写属性,需要创建一个不带相应 getter 的 setter。

注意:若要使用此关键字,必须在 FLA 文件的“Publish Settings”对话框的“Flash”选项卡上指定 ActionScript 2.0 和 Flash Player 6 或更高版本。仅支持在外部脚本文件中使用此关键字,而不支持在使用“Actions”面板编写的脚本中使用此关键字。

参数
 property:*get 所访问的属性的标识符;此值必须与相应的 set 命令中使用的值相同。
 returnType:* — 返回值的数据类型。

示例
如何使用示例
以下示例定义一个 Team 类。Team 类包含允许您检索和设置类中的属性的 getter 和 setter 方法:
package {
    public class Team { 
        var teamName:String; 
        var teamCode:String; 
        var teamPlayers:Array = new Array(); 
        public function Team(param_name:String, param_code:String) { 
            teamName = param_name; 
            teamCode = param_code; 
        } 
        public function get name():String { 
            return teamName; 
        } 
        public function set name(param_name:String):void { 
            teamName = param_name; 
        }
    } 
}
在您的脚本中输入以下代码:
var giants:Team = new Team("San Fran", "SFO"); 
trace(giants.name); 
giants.name = "San Francisco"; 
trace(giants.name); 
/*
San Fran San Francisco */

在跟踪 giants.name 时,使用 getter 方法返回该属性的值。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值