as3 中get和set的用法
轉(zhuǎn)載鏈接:http://blog.csdn.net/alongken2005/article/details/6625814
我們知道,我們?cè)诰帉?xiě)類的時(shí)候應(yīng)該盡量將它的屬性和方法都隱藏起來(lái),但當(dāng)我們要調(diào)用某一個(gè)屬性的時(shí)候,我們就不得不將它暴露出來(lái),這是唯一的一種解決方法嗎?答案是否定的,我們現(xiàn)在要求這樣,有一個(gè)屬性,我們想從外部調(diào)用它,也能夠從外部訪問(wèn)它,但是不讓它暴露到外部,這時(shí)我們?nèi)绾稳プ瞿?#xff1f;這里就要用到我們的get關(guān)鍵字。下面我們就來(lái)詳細(xì)講解一下get及set的使用方法。
? ? 先來(lái)看一段腳本,
package {
public class huoqu {
? ?private var ming:String = "中國(guó)";
? ?public function?get?ni():String {
? ? return ming;
? ?}
? ?public function set ni(ns:String):void {
? ? ming = ns;
? ?}
}
}
? ? 這段腳本并不長(zhǎng),但卻很好的體現(xiàn)了get的使用方法,我們來(lái)看一下。首先我們定義了一個(gè)名稱為huoqu的類,這個(gè)類中有一個(gè)私有屬性ming,這個(gè)屬性只能被當(dāng)前類所訪問(wèn)。也就是說(shuō),我們無(wú)法在外部調(diào)用或訪問(wèn)這個(gè)屬性。這時(shí)我們就要使用get來(lái)讓這個(gè)屬性能夠被外部訪問(wèn)。那么我們先來(lái)看第一個(gè)get函數(shù),這個(gè)函數(shù)有一個(gè)返回值,該返回值的類型是字符串。這個(gè)返回的數(shù)據(jù)就是一個(gè)我們隱藏的變量,通過(guò)這樣的手法我們就達(dá)到了封裝的目的。當(dāng)我們調(diào)用這個(gè)變量的時(shí)候我們就可以直接調(diào)用ni這個(gè)函數(shù),通過(guò)這個(gè)函數(shù)去操作變量。我們?cè)賮?lái)看set這個(gè)函數(shù)的使用方法。
set顧名思義是設(shè)置的意思。我們?nèi)绻麤](méi)有寫(xiě)set函數(shù),那么該屬性只是一個(gè)只讀屬性。如果我們?cè)O(shè)置了這個(gè)set函數(shù),那么該屬性就可以讀也可以設(shè)置。我們來(lái)看上面的腳本,這個(gè)函數(shù)接受了一個(gè)參數(shù),該參數(shù)就是我們?cè)O(shè)置屬性時(shí)要傳遞的值。請(qǐng)大家注意,set函數(shù)沒(méi)有返回值,如果你設(shè)置了返回值,那么將會(huì)倒是編譯錯(cuò)誤。這就是類中聲明定義的方法。
? ? 下面我們?cè)賮?lái)看看如何使用兩個(gè)函數(shù)。我們先看腳本。
var foo:huoqu = new huoqu();
trace(foo.ni)
foo.ni="我的天";
trace(foo.ni);
? ? 首先,要定義一個(gè)對(duì)象,該對(duì)象的類型是我們定義的類。然后我們調(diào)用ni這個(gè)方法,雖然調(diào)用這個(gè)方法,實(shí)際上是讀取一個(gè)屬性的值。第三句我們?cè)O(shè)置了改屬性的值,注意,此時(shí)調(diào)用的實(shí)際上就是set函數(shù),我們?cè)佥敵鲞@個(gè)屬性值,發(fā)現(xiàn)輸出的內(nèi)容發(fā)生了改變。
? ? 以上就是get函數(shù)和set函數(shù)的使用方法,其實(shí)非常簡(jiǎn)單,大家只要自己嘗試幾次就能夠熟練掌握其中的技巧
總結(jié)
以上是生活随笔為你收集整理的as3 中get和set的用法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 与后台通讯,首先要了解AMF协议
- 下一篇: vim复制代码包含注释时格式会乱掉的解决