2013-01-12 41 views
0

我得到这个私有变量,让说,_var:int,它有一个setter和getter。到现在为止还挺好。这是行为预期还是某种逻辑缺陷?

的变种具有500

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

那么,我对制定者和获得者的理解很差,或者这种行为不合逻辑吗?

谢谢。

+3

请显示您的代码。你不是在调用变量“var”吗? – 2013-01-12 00:38:52

回答

2

我假设你只是使用VAR的提问作为简单的例子作为VAR是受限制的关键字。

下面是如何在ActionScript中使用setter &获得者的示例。

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(价值:INT):获得关键字无效的getFoo(): int。有些开发人员更喜欢这种方法,因为更明显的是显式调用函数会提供额外的程序设置,而传统的ActionScript设置器和getter则不会。

+0

是的,那正是我的代码。现在,当我做一个酒吧 - = 5;然后我讲述了_bar的值,它表示:-5代替495. – Artemix

+0

在我的示例中,bar是类Bar的一个实例,它是一个包含名为foo的属性的对象。您必须更改'foo'的值,而不是'bar'。请修改您的问题以包含您的代码。 – TheDarkIn1978

相关问题