谈谈actionscript中的getter和setter

大家在学习actionscript时也许也跟我一样碰到过一些疑问,希望大家都能把自己的疑问抽取出来,一起讨论讨论,共同进步。
对于曾经主要学习java的程序员来说对于getter和setter有些不是很习惯的,java中很简单两段代码就了事了
    public String getPhone() {
return phone;
}

public void setPhone(String phone) {
this.phone = phone;
}

对于as初学者来说可能不是很清楚as中的getter和setter,当看到下面的代码时,可能会觉得疑惑
package
{
public class GetterSetterTest
{
private var name:String;
public function GetterSetterTest()
{

}
public function get name1():String{
return this.name;
}
public function set name1(name:String):void{
this.name=name;
}
public function getName():String{
return this.name;
}

}
}

对于最后的那个函数getName()是跟java中一样的,对于上面的两个函数就不知道怎么回事了,这样的表示也会觉得很奇怪,的确,一开始我也觉得很怪异,怎么会有这样的表示方法呢,函数名居然用空格隔开了,get name1,类似这样的名字应该是一头雾水吧。其实这也不是很奇怪,这是as的一种改进,通过他可以使一些代码更简洁些,当然那方法中的代码是java中表达意思是一样的,下面看这段,它是如何访问的呢:
package
{
import flash.display.Sprite;

public class Test extends Sprite
{
public function Test()
{

var gt:GetterSetterTest=new GetterSetterTest();
gt.name1="ljp;
trace(gt.name1);
trace(gt.getName());
}

}
}
我们通过创建一个测试类来测试我们刚刚的代码,我们可以通过
gt.name1="ljp;
来进行赋值,其实它是调用了set name1()方法,这样表达起来就简洁些了,当我们就是简单的
gt.name1;
的话就是调用get name1()方法,看起来应该很神奇吧对于这样的表达,至于为什么我们不能把方法名写成get name()和set name(),这点我也有点疑惑,如果这样写的话报的错是不兼容的覆盖和方法重复定义,如果哪位大侠知道,还望留下一脚。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值