2013-01-12 37 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

相關問題