posts - 241,  comments - 116,  trackbacks - 0

           在 Java 中使用一個 getter 和 setter 符號,為對象的屬性提供一致的接口已成為一種標準實踐。我們在 Java 中不進行以下操作是有原因的:

          public String fullName;

          實際上,上述代碼在類及類的實現者之間創建了一個接口(或合同),該接口不允許我們在類的實例上訪問 fullName 屬性時更改返回結果的基礎實現dota流浪劍客和水晶室女等英雄初期裝備攻略。因此,如果有人使用 Java 代碼訪問數碼 fullName 屬性:

          blah = obj.fullName;

          或者設置 fullName 屬性:

          obj.fullName = "blah";

          那么,在 Java 中沒有辦法更改獲取或設置 fullName 屬性的行為。如果類的設計者想要更改獲取或設置屬性的基礎行為,他們必須更改類實現者與類進行交互的方式。這顯然不是理想之選,所以在 Java 中我們通常使用 get 和 set 函數隱藏屬性。Java 語言尚無 Java 屬性,所以我們使用多種方法來隱藏實現。因此,我們的 Java 類將是:

          private String fullName;

          public String getFullName() {
          return fullName;
          }

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

          這允許類設計者更改獲取和設置 fullName 屬性的行為,同時不更改外部接口。

          在 Flex 中,通常不必在對象上創建包裝 getter 和 setting 函數,因為 ActionScript 支持屬性。這意味著,您通常僅可以創建如下的公共屬性: 

          public var fullName:String;

          如果獲取或設置 fullName 屬性的內部實現需要更改,那么可以改編類,以具備 getter 和 setter 函數,而無需更改類的外部接口:

          private var _fullName:String;

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

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

          對于類實現者來說,屬性 fullName 還可以通過常規符號獲取和設置:

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

          獲取或設置屬性將調用 getter 和 setter 函數,而不是直接訪問屬性。這支持對象接口的一致性,即便獲取和設置屬性的基礎實現發生了更改。這同樣支持屬性發生更改時類分配事件(這就是數據綁定是如何在 Flex 內部工作的)。

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

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

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          人人游戲網 軟件開發網 貨運專家
          主站蜘蛛池模板: 杂多县| 阳江市| 双牌县| 孟津县| 漠河县| 上高县| 宁国市| 金湖县| 乐都县| 蒙阴县| 开鲁县| 都匀市| 龙岩市| 萨嘎县| 安阳县| 五峰| 临澧县| 磴口县| 武穴市| 福海县| 依安县| 德钦县| 太仓市| 驻马店市| 沙雅县| 高邮市| 章丘市| 甘谷县| 千阳县| 玉门市| 紫阳县| 苗栗市| 吴堡县| 庆阳市| 百色市| 浠水县| 宁国市| 青铜峡市| 吴堡县| 年辖:市辖区| 新闻|