- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
类别与物件–封装
第6章 類別與物件 – 封裝 6-1 物件導向的基礎 6-2 Java的類別與物件 – 封裝 6-3 類別的建構子 6-4 使用物件的成員資料 6-5 在物件使用類別變數與方法 6-1 物件導向的基礎 6-1-1 物件是第二個黑盒子 6-1-2 物件導向分析與設計 6-1-3 物件導向程式語言 6-1-4 UML的基礎 6-1 物件導向的基礎 「物件導向程式設計」(Object-oriented Programming,OOP)是第4章模組化程式設計的一種重要的轉變,一種更符合人性化的程式設計方法,因為我們本來就生活在一個物件的世界,思考模式也導循著物件導向模式。 6-1-1 物件是第二個黑盒子-說明 「物件」(Object)是物件導向技術的關鍵,以程式的角度來說,物件是資料與相關程序和函數結合在一起的組合體,資料是變數,程序和函數在Java語言稱為方法,如下圖所示: 6-1-1 物件是第二個黑盒子-封裝 物件的方法是對外的使用介面,變數和方法都包裹在一個黑盒子,實作程式碼都包裹隱藏起來,稱為「封裝」(Encapsulation)。 對於程式設計者來說,我們並不用考慮黑盒子內部的程式碼是如何撰寫,只需要知道這個物件提供什麼介面和如何使用它。 事實上,開車時並不需要了解車子為什會發動,換擋的變速箱擁有多少個齒輪才能正確操作,車子對我們來說只是一個黑盒子,唯一要作的是學習如何開好車。同理,沒有什麼人了解電視如何能夠收到訊號,但是我們知道打開電源,更換頻道就可以看到影像。 6-1-1 物件是第二個黑盒子-特性 狀態(State):物件所有「屬性」(Attributes)目前的狀態值,屬性是用來儲存物件的狀態,可以簡單的只是一個布林值變數,也可能是另一個物件,例如:車子的車型、排氣量、色彩和自排或手排等屬性。 行為(Behavior):行為是物件可見部分提供的服務,可以作什麼事,例如:車子可以發動、停車、加速和換擋等。 識別字(Identity):識別字是用來識別不同的物件,每一個物件都擁有獨一無二的識別字,Java語言是使用物件參考(Reference)作為物件的識別字,簡單的說,就是物件實際儲存的記憶體位址。 6-1-2 物件導向分析與設計-由上而下分析法的問題 在1970~80年間主要的軟體工程程式分析方法是第4章說明的「由上而下分析法」(Top-down Design),不過這種分析方法有一些問題,如下所示: 由上而下分析法的整個處理過程,只是找出解決問題的程序或函數,也就是各別程序或函數的程式碼,而沒有真正的考量到程式使用的資料本身。 由上而下分析法得到的程序或函數很難被重複使用,因為這些程序或函數都是針對特定問題所量身定製,程序或函數需要大幅修改才能使用在其他問題上。 6-1-2 物件導向分析與設計-解決方式 為了解決上述問題,由上而下的分析法經常需要配合「由下而上分析法」(Bottom-up Design),這種方法是由下而上,先尋找可以重複使用的軟體元件,然後由下而上組合起來,以解決整個問題,如下圖所示: 6-1-2 物件導向分析與設計-資訊隱藏 重複使用的軟體元件就是物件,它如同電腦硬體的「隨插即用」(Plug and Play),只需將它插入軟體系統就可以馬上運作,而不用考慮物件本身的詳細內容,只需符合系統需求,可以把實際處理的資料隱藏起來,稱為「資訊隱藏」(Information Hiding)。 在1980年代初期的物件導向程式設計(Object-oriented Programming)是將原來專注於演算法的程序和函數分解,轉換成了解問題本質的物件,將整個軟體視為一個定義完善的物件集合,整個程式是由這些物件所組成,強調物件的重複使用,在建立好下一層的每一個物件後,由下而上組合成一個完善的物件集合,以解決整個問題。 6-1-3 物件導向程式語言-種類 物件導向程式語言的精神是物件,不過支援物件的程式語言並不見得是一種物件導向程式語言,它可能只是一種物件基礎程式語言,如下所示: 物件基礎程式語言(Object-based Languages):只提供資料抽象化和物件觀念,例如:VB 6,不過,新版VB.NET、Visual Basic 2005/2008是物件導向程式語言。 物件導向程式語言(Object-oriented Languages):支援封裝、繼承和多形的觀念。 6-1-3 物件導向程式語言-封裝 封裝(Encapsulation)是將資料和處理資料的程序與函數組合起來建立物件。在Java語言定義物件是使用「類別」(Class),內含屬性和方法,屬於一種抽象資料型態(Abstract Data Type),換句話說,就是替程式語言定義新的資料型態。 6-1-3 物件導向程式語言-繼承 繼承(In
有哪些信誉好的足球投注网站
文档评论(0)