这种行为是预期的还是某种逻辑缺陷?

时间:2013-01-12 00:08:13

标签: actionscript-3 setter getter

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

var的初始值为500。

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

那么,我对限制器和吸气剂的理解是否差,或者这种行为不符合逻辑?

感谢。

1 个答案:

答案 0 :(得分:2)

我假设您只是使用 var 作为问题的快速示例,因为 var 是受限制的关键字。

下面是一个如何使用setter& amp; ActionScript中的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 。一些开发人员更喜欢这种方法,因为更明显的是,显式调用函数会建议额外的编程,而传统的ActionScript setter和getter则不然。