成员的存取.PPT

  1. 1、本文档共80页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
成员的存取

Chapter 8 類別與物件 8 - 1 類別 8 - 2 繼承 8 - 3 介面 8 - 4 結構 8 - 5 自訂類別庫 8 - 6 自訂控制項 類別與物件 本書已分別於前面各章介紹敘述、敘述區塊及方法。本章將繼續新的單元,稱為類別。以上各種程式單元的隸屬關係如下圖。 類別與物件 以下程式敘述是新增主控台應用程式時,電腦所自動產生的敘述,已自動包含一個命名空間(namespace) 、一個類別 (class) 及一個方法。 8 - 1 類別 類別的建置 類別是由資料成員 (Field)、方法成員、常數成員及屬性成員所構成,其中資料成員即為一般的變數。 類別的建置簡要語法如下: 8 - 1 類別 以下敘述為 Pass 類別的實作,此類別共含有兩個資料成員,分別是 a與 b 及一個方法成員 work()。 8 - 1 類別的樣例化 (Instantiating) 類別就像一個模型,完成類別的實作之後,即可新增一個或多個類別變數,而此類別變數則另稱為物件,此種由類別建立物件的過程,稱為樣例化,也就是建立類別的實體、個體或變數。 其次,類別的使用有三個步驟,分別: 物件的宣告 記憶體的配置 類別成員的存取。 8 - 1 類別的樣例化 (Instantiating) 物件的宣告 一般變數的宣告方式如下: 以上敘述為宣告變數 a 的型別為 int,變數 b 的型別為 string,int 與 string 背後都已實作一個類別。 自訂類別經過宣告之後,也可宣告一個類別變數,此類別變數即為物件,如同上述的變數 a 與 b,在物件導向中亦稱為物件。以下是物件的宣告語法: 8 - 1 類別的樣例化 (Instantiating) 物件的宣告 例:以下敘述可建立一個 pa 物件 記憶體的配置 記憶體配置的語法如下: 例:以下敘述可配置記憶體給 pa 物件 8 - 1 類別的樣例化 (Instantiating) 記憶體的配置 以上物件的宣告與記憶體的配置可合併,合併的語法如下: 例:以下敘述可宣告並配置記憶體給 pa 物件。 8 - 1 類別的樣例化 (Instantiating) 成員的存取 物件經過宣告與配置記憶體之後,即可存取類別成員,存取方式為物件與類別成員之間加上點 (.) 運算子。例如,以下敘述可設定 Pass 類別內的資料成員 score 為 88。 其次,存取方法成員時,不論此方法是否傳遞參數,均應加上一對小括號 ()。例如,以下敘述可執行以上 Pass 類別的 work 成員。 範例 8-1A 8 - 1 建構子(Constructors) 於類別的建置中,有一種方法較為特別,因其方法名稱必須與類別名稱相同,此方法特稱為建構子。 因為在物件建立的同時,此方法隨之自動執行,所以此方法通常用於設定資料成員的初值。 例,類別名稱為 Pass時,類別建構子即為 Pass()。但如果類別中沒有宣告任何建構子,則 C#編譯器會自動提供一個無參數的預設建構子,並依編譯器預設規則來初始化非 static 成員變數。 例,數值型別變數(int,double,...)初始化為 0,bool 型別初始化為 false,參考型別初始化為 null 等。 此外,建構子不得傳回任何資料型態,使用時亦不用加上 void。 8-1B 建構子多載 範例8-1C示範建構子多載。 8 - 1 解構子 (Destructor) 建構物件所要執行的方法稱為建構子,摧毀物件所要執行的方法則稱為解構子。 在 C# 採用自動回收的機制。但是若一定要在物件摧毀之前進行某項工作,則可以將這些事項放在一個與類別名稱同名,但前面加上 (?)的方法,此方法又稱為解構子。 8 - 1 解構子 (Destructor) 例:以下敘述為 Pass 類別的解構子。 且主程式不用任何更動,則其執行結果如下: 電腦會自動執行解構子。其次,一個類別只能有一個解構子,而且無法 (也不用) 主動呼叫執行解構子。事實上,C#並不需要使用者進行太多的記憶體管理,因為.NET Framework的垃圾收集器會代勞。除非應用程式使用unmanaged資源,例如,檔案、網路、與資料庫等等,才需要撰寫解構子,來釋放這些資源。 8 - 1 物件陣列 一般的變數可以使用陣列處理。以下敘述可樣例 5 個整數陣列。 自訂的類別可樣例成物件陣列,其方法是先樣例物件陣列。例如,以下敘述可樣例1個pa陣列。 其次,再依序樣例每一物件的內容。以下敘述可樣例 pa[0]的內容。 8 - 1 物件陣列 以下敘述是重設 pa[0]的 score 成員。 以下敘述是執行 pa[0]的 work 方法。 以下敘述可印出 pa[0]的 result 成員。 8 - 1

文档评论(0)

2105194781 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档