我得到了这个私有变量,比如说 _var:int,它有一个 setter 和 getter。到目前为止,一切都很好。
var 的初始值为 500。
当我做一个 var -= 5; 不是从 var 中减去 5,而是减去 505,我在 getter 中放置了一个断点,并且确实到了那里。
那么,我对 setter 和 getter 的理解很差,还是这种行为不合逻辑?
谢谢。
我得到了这个私有变量,比如说 _var:int,它有一个 setter 和 getter。到目前为止,一切都很好。
var 的初始值为 500。
当我做一个 var -= 5; 不是从 var 中减去 5,而是减去 505,我在 getter 中放置了一个断点,并且确实到了那里。
那么,我对 setter 和 getter 的理解很差,还是这种行为不合逻辑?
谢谢。
我假设您只是使用var作为您问题的快速示例,因为var是一个受限关键字。
下面是一个如何在 ActionScript 中使用 setter 和 getter 的示例。
var bar:Bar = new Bar();
trace(bar.foo); //500
bar.foo -= 5;
trace(bar.foo); //495
package
{
//Class
public class Bar
{
//Variables
private var _foo:int;
//Constructor
public function Bar()
{
_foo = 500;
}
//Set Foo
public function set foo(value:int):void
{
_foo = value;
}
//Get Foo
public function get foo():int
{
return _foo;
}
}
}
您还可以通过将函数签名更改为setFoo(value:int):void和getFoo():int来避免使用set和get关键字。一些开发人员更喜欢这种方法,因为更明显的是,显式调用函数会建议进行额外的编程,而传统的 ActionScript setter 和 getter 则不会。