0

我得到了这个私有变量,比如说 _var:int,它有一个 setter 和 getter。到目前为止,一切都很好。

var 的初始值为 500。

当我做一个 var -= 5; 不是从 var 中减去 5,而是减去 505,我在 getter 中放置了一个断点,并且确实到了那里。

那么,我对 setter 和 getter 的理解很差,还是这种行为不合逻辑?

谢谢。

4

1 回答 1

2

我假设您只是使用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):voidgetFoo():int来避免使用setget关键字。一些开发人员更喜欢这种方法,因为更明显的是,显式调用函数会建议进行额外的编程,而传统的 ActionScript setter 和 getter 则不会。

于 2013-01-12T01:13:04.350 回答