类别与物件封装.ppt

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

第12章 類別與物件-封裝 12-1 物件導向的觀念 12-2 物件導向程式設計 12-3 C++語言的類別與物件 – 封裝 12-4 類別的建構與解構子 12-5 物件指標、參考和物件陣列 12-1 物件導向的觀念 12-1-1 物件觀念 12-1-2 訊息觀念 12-1-3 類別觀念 12-1 物件導向的觀念 物件導向技術擁有三種重要觀念:物件、訊息和類別,簡單說明如下所示: 物件:提供資料和處理資料函數的封裝。 訊息:在物件之間的溝通方式,可以建立互動和支援多形。 類別:物件的分類,可以實作類別架構的繼承。 12-1-1 物件觀念-什麼是物件 物件是資料與相關處理資料的函數所結合在一起的組合體。資料就是程式語言的變數,如下圖所示: 12-1-1 物件觀念-物件的三種特性 狀態(State):物件所有屬性(Attributes)目前的狀態值,屬性是用來儲存物件的狀態,可以簡單的只是布林值變數,也可能是另一個物件。例如:車子的車型、排氣量、色彩和自排或手排等屬性,以程式來說,也就是資料部分的變數。 行為(Behavior):行為是物件可見部分提供的服務,可以作什麼事?C++語言是使用函數來實作行為,例如:車子可以發動、停車、加速和換擋等。 識別字(Identity):每一個物件都擁有獨一無二的識別字來識別它屬於不同的物件。C++語言是使用物件名稱或物件指標來識別是不同的物件。 12-1-2 訊息觀念-什麼是訊息 物件是使用訊息來模擬彼此的互動,換句話說,訊息是物件間的溝通橋樑,可以啟動另一個物件來執行指定行為。例如:Student學生物件查詢成績,此時Student物件可以送一個訊息給StudentStauts物件,告訴它需要查詢學生成績,如下圖所示: 12-1-2 訊息觀念-傳回值 在接收物件接到訊息後,就會執行指定函數,然後將回應訊息送回給發送物件(也可能並不會回應),稱為「傳回值」(Return Value),即查詢結果的學生成績,如下圖所示: 12-1-3 類別觀念-什麼是類別 車輛Car1、Car2、Car3、Car4…各物件都擁有相同的屬性和行為,只是狀態不同,例如:白色、紅色和黑色不同色彩狀態的車。 簡單的說,這些物件屬於同一類的物件,我們可以建立名為Car的範本來建立這些物件,如同工廠依照藍圖製造車輛,此範本就是類別,屬於同一類別的物件即該類別的「實例」(Instance),也稱為副本。 12-1-3 類別觀念-類別是物件的藍圖 類別的目的是用來建立物件,使用類別建立的物件稱為類別的實例(Instance)。例如:一位學生的姓名name是【陳會安】,另一位是【江小魚】,如下圖所示: 12-2 物件導向程式設計 12-2-1 抽象資料型態 12-2-2 物件導向的程式設計 12-2-3 物件導向程式語言 12-2 物件導向程式設計 物件導向程式設計「OOP」(Object-oriented Programming)是模組化程式設計的一種重要轉變,屬於一種更符合人性化的程式設計方法,因為我們本來是生活在一個物件的世界,思考的模式也是導循著物件導向的模式。 12-2-1 抽象資料型態-說明 「抽象資料型態」(Abstract Data Type)包含資料和相關操作,將資料和處理資料的操作一起思考,結合在一起,操作是對外的使用介面,如下圖所示: 12-2-1 抽象資料型態-範例 例如:將個人基本資料問題抽象化成Person模型,用來模擬真實世界的人實體,如下圖所示: 12-2-2 物件導向的程式設計 物件就是一種包含資料和處理這些資料的函數的模組,不過此模組和第5-8節的模組不同,它提供繼承功能可以擴充功能。簡單的說,物件導向程式設計和模組化程式設計的最大差異,就是物件導向支援繼承觀念。 物件導向的程式分析是將原來專注於演算法的函數分解,轉換成了解問題本質的物件,將整個軟體視為一個定義完善的物件集合,整個程式是由這些物件所組成,強調物件的重複使用,在建立好下一層的每一個物件後,由下而上組合成一個完善的物件集合,以解決整個問題。 12-2-3 物件導向程式語言-種類 物件導向程式語言的精神是物件,但支援物件的程式語言並不一定是物件導向程式語言,它可能只是一種物件基礎程式語言,如下所示: 物件基礎程式語言(Object-based Languages):提供資料抽象化和物件觀念。例如:VB 6,不過VB.NET和Visual Basic 2005是一種物件導向程式語言。 物件導向程式語言(Object-oriented Languages):支援封裝、繼承和多形觀念。 12-2-3 物件導向程式語言-封裝 封裝(Encapsulation)是將資料和處理資料的程序與函數組合起來建立物件。在C++語言定義物件是

文档评论(0)

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

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

1亿VIP精品文档

相关文档