我得到這個私有變量,讓說,_var:int,它有一個setter和getter。到現在爲止還挺好。這是行爲預期還是某種邏輯缺陷?
的變種具有500
初始值當我做一個變種 - = 5;不是從var中減去5,而是減去505,我在getter中放置了一個斷點,並且確實在那裏。
那麼,我對制定者和獲得者的理解很差,或者這種行爲不合邏輯嗎?
謝謝。
我得到這個私有變量,讓說,_var:int,它有一個setter和getter。到現在爲止還挺好。這是行爲預期還是某種邏輯缺陷?
的變種具有500
初始值當我做一個變種 - = 5;不是從var中減去5,而是減去505,我在getter中放置了一個斷點,並且確實在那裏。
那麼,我對制定者和獲得者的理解很差,或者這種行爲不合邏輯嗎?
謝謝。
我假設你只是使用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則不會。
是的,那正是我的代碼。現在,當我做一個酒吧 - = 5;然後我講述了_bar的值,它表示:-5代替495. – Artemix
在我的示例中,bar是類Bar的一個實例,它是一個包含名爲foo的屬性的對象。您必須更改'foo'的值,而不是'bar'。請修改您的問題以包含您的代碼。 – TheDarkIn1978
請顯示您的代碼。你不是在調用變量「var」嗎? – 2013-01-12 00:38:52