<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 241,  comments - 116,  trackbacks - 0

     在 Java 中使用一個(gè) getter 和 setter 符號(hào),為對(duì)象的屬性提供一致的接口已成為一種標(biāo)準(zhǔn)實(shí)踐。我們?cè)?Java 中不進(jìn)行以下操作是有原因的:

    public String fullName;

    實(shí)際上,上述代碼在類(lèi)及類(lèi)的實(shí)現(xiàn)者之間創(chuàng)建了一個(gè)接口(或合同),該接口不允許我們?cè)陬?lèi)的實(shí)例上訪(fǎng)問(wèn) fullName 屬性時(shí)更改返回結(jié)果的基礎(chǔ)實(shí)現(xiàn)dota流浪劍客和水晶室女等英雄初期裝備攻略。因此,如果有人使用 Java 代碼訪(fǎng)問(wèn)數(shù)碼 fullName 屬性:

    blah = obj.fullName;

    或者設(shè)置 fullName 屬性:

    obj.fullName = "blah";

    那么,在 Java 中沒(méi)有辦法更改獲取或設(shè)置 fullName 屬性的行為。如果類(lèi)的設(shè)計(jì)者想要更改獲取或設(shè)置屬性的基礎(chǔ)行為,他們必須更改類(lèi)實(shí)現(xiàn)者與類(lèi)進(jìn)行交互的方式。這顯然不是理想之選,所以在 Java 中我們通常使用 get 和 set 函數(shù)隱藏屬性。Java 語(yǔ)言尚無(wú) Java 屬性,所以我們使用多種方法來(lái)隱藏實(shí)現(xiàn)。因此,我們的 Java 類(lèi)將是:

    private String fullName;

    public String getFullName() {
    return fullName;
    }

    public void setFullName(String fullName) {
    this.fullName = fullName;
    }

    這允許類(lèi)設(shè)計(jì)者更改獲取和設(shè)置 fullName 屬性的行為,同時(shí)不更改外部接口。

    在 Flex 中,通常不必在對(duì)象上創(chuàng)建包裝 getter 和 setting 函數(shù),因?yàn)?ActionScript 支持屬性。這意味著,您通常僅可以創(chuàng)建如下的公共屬性: 

    public var fullName:String;

    如果獲取或設(shè)置 fullName 屬性的內(nèi)部實(shí)現(xiàn)需要更改,那么可以改編類(lèi),以具備 getter 和 setter 函數(shù),而無(wú)需更改類(lèi)的外部接口:

    private var _fullName:String;

    public function get fullName():String {
    return _fullName;
    }

    public function set fullName(_fullName:String):void {
    this._fullName = _fullName;
    }

    對(duì)于類(lèi)實(shí)現(xiàn)者來(lái)說(shuō),屬性 fullName 還可以通過(guò)常規(guī)符號(hào)獲取和設(shè)置:

    // getters
    blah = obj.fullName;
    blah = obj['fullName'];
    // setters
    obj.fullName = "blah";
    obj['fullName'] = "blah";

    獲取或設(shè)置屬性將調(diào)用 getter 和 setter 函數(shù),而不是直接訪(fǎng)問(wèn)屬性。這支持對(duì)象接口的一致性,即便獲取和設(shè)置屬性的基礎(chǔ)實(shí)現(xiàn)發(fā)生了更改。這同樣支持屬性發(fā)生更改時(shí)類(lèi)分配事件(這就是數(shù)據(jù)綁定是如何在 Flex 內(nèi)部工作的)。

    我注意到很多 Java 開(kāi)發(fā)人員都對(duì) ActionScript 類(lèi)上的公共屬性非常警惕。不必!ActionScript 支持真正的屬性,因此您不再需要屬性 getter 和 setter,除非您正在進(jìn)行一些非同尋常的操作。而且,您可以切換到 getter 和 setter,而無(wú)須更改對(duì)象的接口。

    posted on 2010-11-06 15:09 墻頭草 閱讀(733) 評(píng)論(0)  編輯  收藏

    只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    人人游戲網(wǎng) 軟件開(kāi)發(fā)網(wǎng) 貨運(yùn)專(zhuān)家
    主站蜘蛛池模板: 8x8x华人永久免费视频| 亚洲av无码片vr一区二区三区| 亚洲精品无码精品mV在线观看| 亚洲精品线路一在线观看| 免费国产成人午夜私人影视| 免费看男女下面日出水视频| 又粗又大又猛又爽免费视频 | 亚洲色成人WWW永久在线观看| 亚洲美女在线观看播放| 亚洲国产品综合人成综合网站| 亚洲第一二三四区| 亚洲视频手机在线| 亚洲黄色在线观看| 亚洲av无码专区在线| 精品亚洲成在人线AV无码| 亚洲天堂2017无码中文| 亚洲成av人片在www鸭子| 国产亚洲日韩在线a不卡| 又硬又粗又长又爽免费看| 国产综合免费精品久久久| 国产婷婷成人久久Av免费高清 | 黄色网页免费观看| 亚洲一区二区三区免费| 精品四虎免费观看国产高清午夜| 美女内射无套日韩免费播放| 成人浮力影院免费看| 色播在线永久免费视频| 亚洲AV无码成H人在线观看| 国内精品99亚洲免费高清| 4480yy私人影院亚洲| 亚洲Av高清一区二区三区| 色偷偷亚洲男人天堂| 国产在线精品一区免费香蕉| 5g影院5g天天爽永久免费影院 | 美女无遮挡拍拍拍免费视频| 午夜精品射精入后重之免费观看| 国产在线jyzzjyzz免费麻豆 | 天天影院成人免费观看| 日本免费无遮挡吸乳视频电影| 亚洲精品无码久久毛片| 久久亚洲AV无码精品色午夜麻豆|