- 1、本文档共36页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第九章 類別與物件 9-1 物件導向的程式設計 9-2 物件的設計 9-3 物件的進階觀念 9-4 錯誤處理類別 9-1 物件導向的程式設計 人類之所以會是萬物之靈,其中一個主要原因是人類可以在錯誤中成長。物件導向的程式設計(Object Oriented Programming,OOP)也是人們在程式語言中逐漸累積的成果,這個觀念在1970年代就已提出,只是當時時機未到。現在,OOP則已是所有程式語言的標準配備,為了說明OOP大行其道的原因,筆者將程式語言的發展分為3個時期,分別是非程序導向、程序導向及物件導向,說明如下: 非程序導向 早期的程式語言,並沒有內儲副程式(又稱程式庫)。所以,當我們開發新的應用程式時,如果某一功能與之前寫過的程式相近,則會將此段已完成的程式整段複製,並稍加修改即可重新加以利用。但是,這些程式的分身包括本尊,自從複製出來以後就開始以各自的方式發展,結果造成各版本的差異越來越大,這些程式很難弄清楚誰複製誰,彼此之間也難再共用某些程式碼,當遇到錯誤,或欲新增功能時,更是很難逐一修改所有的程式。 程序導向 為了解決以上程式共用問題,各編譯器廠商便開始提供一些大家常用的函式,比較有規模的軟體設計公司亦會將一些常用的函式集中在一個函式庫,旗下的軟體產品一律呼叫這些標準的函式庫,而不是從函式庫複製出來修改,此即為程序導向的程式設計 程序導向與非程序導向相比,的確解決了程式共用的問題,但是,人們並不以此為自滿,有些問題還是不夠順暢。例如,有些函式庫會隨著人們需求的增加而有不同版本,當某些函式功能增加時,我們只好重新取函式庫的函式加以修改,並賦與新的名稱。如此日積月累,我們的函式庫已有許多函式。這些函式有的功能相近、有的是前後版本不同、有的函式裏的變數來龍去脈不明,造成使用者的混亂。為了突破以上瓶頸,於是有物件導向的發展,以解決以上程序導向的不足。 物件導向 程序導向中的函式,存有許多解決問題的函式(函式在目前的物件導向中另稱為方法),它是偏重在方法的解決。但是,人類的生活方式不僅是單純的行為描述,更存在著屬性的記載。例如,當我們描述一個人時,我們通常描述如下:“他的名字是洪國勝,身高172、體重70,具有滾進、游泳及跑步的能力”;又例如描述一輛車子時,其描述如下:“它的名字是SENTRA,排氣量是1600 c.c.,耗油量是每公里0.1公升,且具有每小時120公里的移動能力”。以上人與車即稱為“物件”,名字、身高、排氣量則稱為“屬性”,而滾進、游泳、跑步、移動則稱為“方法”。既然真實世界是以物件描述物種,程式設計亦不應侷限在狹隘的函式,僅偏重解決問題的方法,而是應以物件的宏觀角度撰寫程式。所以,基於物件導向的新觀念,程式開發工具即製訂一種新的型別,此型別稱為類別。 每一類別都有屬於自己的方法,也就是我們已將眾多的函式依照類別存放,如此可解決目前日益龐大的函式命名與函式取用的困擾,就如同自然界是以界、門、綱、目、科、屬及種等作為物種的分類。例如,程序導向的時代,關於開門的函式即有電梯開門、汽車開門、房子開門等數種開門的方法,如此徒增命名與取 用的困擾。但在物件導向的領域裏,開門這個方法是附在相對應的類別裏。例如,於電梯類別裏有電梯的開門,汽車類別有汽車的開門,房子類別裏有房子的開門方法,大家的方法名稱都叫“開門”,撰寫程式時也是電梯.開門,汽車.開門,或是房子.開門(物件與方法、屬性之間以點(.)運算子連結),如此既可簡化程式的撰寫,亦可減少程式出錯的機會。但是,在程序導向的領域裏,所有的函式都集中,就有可能用錯方法。例如,用開電梯門的方法去開汽車的門,結果當然是錯的。 類別的變數即稱為物件,物件亦稱為類別的實現或類別的樣例化(Instance)。也就是說,類別就像是一個酒瓶或機器人的模型,在這些模型裏面已設計好他所具備的屬性與方法,當您需要酒瓶或機器人時,只要依照這些模型樣例一個或多個酒瓶或機器人即可。 其次,物件導向亦提出了三個觀念,分別是物件的封裝(Encapsulation)、繼承(Inheritance)及多型(Polymorphism),以解決程序導向的不足。 封裝 軟體科技的開發與其它的工業,如汽車、電視、收音機等機械、電子產品相較,可說是起步較晚的領域,在汽車、電視及收音機等產品上,我們發現這些產品很重視物件的封裝。例如,以電視機而言,我們發現內部有許多零件與開關,對於電視製造商而言,它們使用機殼將這些零件與開關“封裝”起來,才能避免使用者任意破壞,只留下部份開關與螢幕讓使用者欣賞節目。軟體程式的開發何嘗不應如此呢?所以對於類別的規劃,我們亦應重視所有方法、欄位及屬性封裝,使得這些成員有不同的封裝等級,以避免主程式與類別庫之間的干擾。就如同電視機或汽車的一些開關與旋鈕,有些是開
您可能关注的文档
最近下载
- 湖南省长沙市长郡雨花外国语学校2022年人教版小升初考试数学试卷(一)(含答案解析).docx VIP
- 福建省福州一中自主招生考试数学试卷.docx VIP
- 《企业内部控制》第18章 内部信息传递.pptx VIP
- 小学英语特色课程.doc VIP
- 肱骨骨折的护理查房.pptx VIP
- 浙江省台州市椒江区2023-2024学年八年级下学期期末数学试题(含答案).docx VIP
- 2025中考初中英语1600单词速记完整版(复习必背).docx
- 2025年哈尔滨供水集团有限责任公司人员招聘笔试备考试题及答案解析.docx VIP
- (正式版)S-H∕T3507-2024 石油化工钢结构工程施工及验收规范.docx VIP
- JT∕T 1094-2016 营运客车安全技术条件.pdf VIP
文档评论(0)