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)  編輯  收藏

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


          網站導航:
           
          人人游戲網 軟件開發網 貨運專家
          主站蜘蛛池模板: 浙江省| 九龙县| 太仆寺旗| 建德市| 鹤庆县| 灌云县| 六盘水市| 察隅县| 福海县| 城步| 南川市| 溆浦县| 永吉县| 富宁县| 珲春市| 滨海县| 报价| 诸城市| 北票市| 五华县| 临城县| 高要市| 伊金霍洛旗| 香港 | 福州市| 托里县| 仙桃市| 陇川县| 林口县| 桂东县| 西和县| 望都县| 静海县| 东海县| 桂阳县| 怀化市| 梁山县| 莆田市| 通辽市| 清水河县| 柳河县|