- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ch5物件导向概念.ppt
第五章 物件導向概念 物件導向程式設計 以物件為基礎,在程式中運用各種能獨立運作的物件的設計方法。 Object Oriented Programming,簡稱OOP。 類別或物件有三個基本成員:方法、屬性及事件 。 物件的三個基本特性-封裝、繼承及多型 類別Class 類別是事物的基本共同的抽象特點。 類別裡定義了屬性(Property)及方法(Method), 類別裡定義的每一個屬性及方法,是這個類別的成員(Member)。 。 每一個依照這個類別定義所產生的實體,就是物件(Object) 。 工具箱裡的TextBox就是類別(Class),而表單裡的二個TextBox物件,都是依據TextBox類別所產生的實體(Instance)。 封裝(Encapsulation) 使用Timer元件時,元件如何計算間隔時間,觸發Tick事件時如何運作,使用者不必知道。只要知道如何啟動Timer,如何設定間隔時間即可,這樣的概念稱為封裝。 透過封裝,使用者不必知道物件內部如何運作,卻可以透過屬性和方法來使用物件。 一般人只要會開車就好,引擎如何點火,傳動軸如何轉向,變速箱如何工作,可以不必知道。 繼承(Inheritance) 透過繼承,可以藉由父類別快速建立符合需求的子類別,這樣可以重覆使用程式元件的概念。 繼承下來的類別稱為子類別或衍生類別。 子類別除了繼承父類別的成員,也可以有自己的成員,即自己的方法及屬性。 多型(polymorphism) 多型可以翻譯成同名異式,意思是指類別中同一個名稱的方法,可以有不同的使用方法。 這些同一名稱的方法會透過不同的參數數量,或不同的參數型別執行不同的程序或程式碼。 若是多型發生在同一類別中,稱為多載(OverLoad),若是多型發生在不同類別中,例如父類別與子類別都擁有相同名稱的方法,稱為覆寫(Override)。 類別的定義 Class 類別名稱 Inherits 父類別 Implements 介面名稱 成員(包含屬性及方法) End Class 類別內屬性的定義: 如果是最簡單的屬性,不會對屬性值做任何處理,可在宣告前加上Public或Private關鍵字,若未加則預設為Private。 Public:表示此屬性存取無任何限制。 Private:表下此屬性僅允許同類別內存取。 類別內方法的定義 可以用函數Fuction或程序Sub來定義,與屬性一樣,須加宣告的類型關鍵字。 物件的實作 宣告類別後,若要依據這個類別實作一個物件,其物件宣告語法如下: Dim 物件名稱 As New 類別名稱 或 Dim 物件名稱 As類別名稱 物件名稱=New 類別名稱 例如: Dim mycar As New Car 或 Dim mycar As Car mycar= New Car 範例一 設計一個車子類別,名稱為Car,然後實作二個物件。並在點選表單上的「執行」鈕後顯示二個物件的屬性。 如何在VB 中定義類別 表單檔與類別檔是分開儲存的,但必須先有類別,才能宣告物件。 類別宣告及方法屬性的定義是建立在類別檔中。 開啟新專案,再從「專案」/「加入類別」,範本是選擇「類別」,再賦予一個檔名,預設是Class1,然後選「加入」即可。 也可以從「方案總管」小視窗中,在專案名稱上按滑鼠右鍵來完成。 類別檔程式碼 表單程式碼 範例二-繼承及覆寫 開啟範例一的專案,再加入第二個類別Truck。 Truck類別將會繼承Car類別,但是Truck類別的Display()方法要不同於Car類別(使用覆寫)。 先修改Car類別的程式碼,將第9行的Public Function Display()改為Public Overridable Function Display(),這樣才能允許子類別Truck覆寫Display()方法。 要運用覆寫,除了在父類別加入Overridable宣告外,子類別中也要加上Overrides宣告。 Truck類別程式碼 表單程式碼 屬性程序Property 類別的屬性都宣告為Public,在VB 2005中稱為Filed欄位,這些欄位都是公用變數。 公用變數的二個缺點: 不符合物件封裝的原則:隱藏內部資訊,因為這些屬性都宣告為Public,對類別外部都是公開的。 無法做額外的處理,例如檢查資料的正確性。 VB 2005中實際上是透過屬性程序Property來設定(Set)及擷取(Get)屬性值。 Public Class Class1 Public value1 As Integer Private value2 As Integer = 0 Public Property ThisProperty() As Integer
文档评论(0)