属性访问器(Property Accessor)----Setter/Getter
生活随笔
收集整理的這篇文章主要介紹了
属性访问器(Property Accessor)----Setter/Getter
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Setter/Getter:屬性/成員變量的封裝
本質(zhì)上是實(shí)例方法,但是在類的外部作為屬性來(lái)訪問(wèn),它允許創(chuàng)建只讀和只寫(xiě)屬性。
使用:
getter方法:必須有返回類型,且和要訪問(wèn)的私有屬性類型一致。必須有返回語(yǔ)句,返回要訪問(wèn)的私有屬性。
setter方法:必須要有參數(shù),且參數(shù)類型要和訪問(wèn)的私有屬性類型一致,返回類型為void,要有賦值語(yǔ)句。
好處: ①獨(dú)特的訪問(wèn)控制(public/private...重新封裝)能力。訪問(wèn)getter和setter創(chuàng)建的方法可以像訪問(wèn)屬性一樣方便。而且還可以做其他的事情,比如例子中每次訪問(wèn)hello時(shí),都會(huì)使gettimes增加1: ②隱藏了類的屬性的實(shí)現(xiàn)細(xì)節(jié)。根據(jù)封裝思想,將屬性直接暴露在外部是不好的做法,盡量通過(guò)getter和setter(屬性別名)方法來(lái)訪問(wèn)屬性。 ③在getter和setter方法中可以插入額外的代碼邏輯,易于日后修改和擴(kuò)展,如上例中的gettimes和settimes。 ④用來(lái)綁定數(shù)據(jù)訪問(wèn)等。比如設(shè)置個(gè)變量為public類型用來(lái)在外部調(diào)用,如果想更改這個(gè)變量的值并進(jìn)行相關(guān)的一系列處理就會(huì)比較麻煩,比如凡是調(diào)用這個(gè)變量的地方全部都要重新改,采用EnterFrame偵聽(tīng)來(lái)檢查數(shù)據(jù)是否發(fā)生了變化顯然不好。如果使用getter和setter只要更改這兩個(gè)方法就可以了。 ⑤訪問(wèn)類的屬性而不需要將這個(gè)類公開(kāi),比如有個(gè)container內(nèi)部有個(gè)rect_mc,如果想在container外部獲取rect_mc的高度,總不能將container設(shè)為public,通過(guò) public function get rect_mc.Width():Number
{
??return rect_mc.width;
}就可以訪問(wèn)了。 ⑥給類添加只讀和只寫(xiě)屬性。方便修改類的私有成員屬性。 ⑦Interface的屬性只能使用方法,所以必須使用getter/setter設(shè)定。
理解:可以理解成是一種屬性的函數(shù)(方法)應(yīng)用,即按屬性方式 函數(shù)(方法)處理和包裝,方便捕獲事件和獲取想要的結(jié)果。 另外,setter方法不一定要和該類中的某個(gè)成員變量聯(lián)系一起,比如public function set doOtherThing(...){...},可以在函數(shù)體中處理其他的事情。
好處: ①獨(dú)特的訪問(wèn)控制(public/private...重新封裝)能力。訪問(wèn)getter和setter創(chuàng)建的方法可以像訪問(wèn)屬性一樣方便。而且還可以做其他的事情,比如例子中每次訪問(wèn)hello時(shí),都會(huì)使gettimes增加1: ②隱藏了類的屬性的實(shí)現(xiàn)細(xì)節(jié)。根據(jù)封裝思想,將屬性直接暴露在外部是不好的做法,盡量通過(guò)getter和setter(屬性別名)方法來(lái)訪問(wèn)屬性。 ③在getter和setter方法中可以插入額外的代碼邏輯,易于日后修改和擴(kuò)展,如上例中的gettimes和settimes。 ④用來(lái)綁定數(shù)據(jù)訪問(wèn)等。比如設(shè)置個(gè)變量為public類型用來(lái)在外部調(diào)用,如果想更改這個(gè)變量的值并進(jìn)行相關(guān)的一系列處理就會(huì)比較麻煩,比如凡是調(diào)用這個(gè)變量的地方全部都要重新改,采用EnterFrame偵聽(tīng)來(lái)檢查數(shù)據(jù)是否發(fā)生了變化顯然不好。如果使用getter和setter只要更改這兩個(gè)方法就可以了。 ⑤訪問(wèn)類的屬性而不需要將這個(gè)類公開(kāi),比如有個(gè)container內(nèi)部有個(gè)rect_mc,如果想在container外部獲取rect_mc的高度,總不能將container設(shè)為public,通過(guò) public function get rect_mc.Width():Number
{
??return rect_mc.width;
}就可以訪問(wèn)了。 ⑥給類添加只讀和只寫(xiě)屬性。方便修改類的私有成員屬性。 ⑦Interface的屬性只能使用方法,所以必須使用getter/setter設(shè)定。
理解:可以理解成是一種屬性的函數(shù)(方法)應(yīng)用,即按屬性方式 函數(shù)(方法)處理和包裝,方便捕獲事件和獲取想要的結(jié)果。 另外,setter方法不一定要和該類中的某個(gè)成員變量聯(lián)系一起,比如public function set doOtherThing(...){...},可以在函數(shù)體中處理其他的事情。
總結(jié)
以上是生活随笔為你收集整理的属性访问器(Property Accessor)----Setter/Getter的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Windows内存管理 - 隐藏在new
- 下一篇: C++的内存管理