getter 和 setter
getter 和 setter 是表現得像屬性的方法。它意味著它們具有功能結構,但在使用時,它們與屬性相同:
吸氣功能的結構 :
他們應該在 function
關鍵字之後和函式名之前有 get
關鍵字,沒有引數,指定了返回型別,並且必須返回一個值:
public function get myValue():Type{
//anything here
return _desiredValue;
}
語法 :
要從 getter 獲取值,語法與從屬性獲取值相同(不使用 parens ()
)。
trace(myValue);
setter 函式的結構 :
他們應該在 function
關鍵字之後和函式名之前有 set
關鍵字,有一個引數,沒有值返回。
public function set myValue(value:Type):void{
//anything here
_desiredProperty=value;
}
語法 :
要設定 setter 的值,語法與將值設定為屬性相同(使用等號 =
然後使用值)。
myValue=desiredValue;
為一個值設定一個 getter 和 setter :
注意:如果僅建立 getter 或僅建立具有名稱的 setter,則該屬性將是隻讀或僅設定。
要使屬性具有可讀性和可讀性,應建立一個 getter 和 setter:
同名
2.相同型別(getter 的返回值型別和 setter 的輸入值型別(引數),
注意:getter 和 setter 的名稱不應與其他屬性或方法相同。
使用 getter 和 setter:
使用 getter 和 setter 而不是普通的屬性有很多優點:
1. 製作只讀或僅設定屬性:
例如顯示物件中的子節點數。它不能是可以選擇的。
2. 訪問私有屬性:
一個例子:
private var _private:Type=new Type();
//note that function name "private" is not same as variable name "_private"
public function get private():Type{
return _private;
}
3. 在設定值後需要進行一些更改時:
在此示例中,必須通知更改此屬性:
public static function set val:(input:Type):void{
_desiredProperty=input;
notifyValueChanged();
}
和許多其他用法