- 1、本文档共92页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ch01物件导向技术导论(一)
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 物件觀念-物件的範例1 物件可以模擬真實生活的東西,例如:Car1物件模擬一輛1800cc紅色四門的Sentra車子。 Car1是物件的識別字,使用Car1識別字就可以在眾多模擬其他車輛的Car2、Car3、Car4….物件中,識別出指定的車輛物件。 Car1物件的屬性和行為,如下所示: 屬性:車型(type)、排氣量(cc)、色彩(color)、幾門(door)。 行為:發動(starting)、停車(parking)、加速(speeding)、換檔(shift)。 * * 物件觀念-物件的範例2 Car1物件模擬車輛時是使用變數儲存屬性目前的狀態值,並且建立方法來模擬行為,如下所示: 狀態:type=Sentra、cc=1800、color=red、door=4。 方法: starting() parking() speeding() shift() * * 物件觀念-複合物件 「複合物件」(Composite Object)是指物件的屬性是另一個物件,例如:上述Car1物件door是整數的車門數,如果是車門Door物件時,Car1物件就是一個複合物件。 * * 訊息觀念-說明 物件可以模擬現實生活的東西,但是現實生活中的東西會彼此互動。例如:學生要求成績(學生與成績物件)、約同學看電影(同學與同學物件)和學生彈鋼琴(學生與鋼琴物件)等互動。所以,我們建立的物件之間也需要互動,使用的就是訊息(Message)。 * * 訊息觀念-什麼是訊息 物件是使用訊息來模擬彼此的互動,換句話說,訊息是物件之間的溝通橋樑,可以啟動另一個物件來執行指定的行為。 例如:Student學生物件需要查詢成績,學生成績是儲存在StudentStatus物件,此時Student物件可以送一個訊息給StudentStauts物件,告訴它需要查詢學生的成績。 * * 訊息觀念-訊息圖例 * * 訊息觀念-訊息圖例說明 訊息是從Student物件的發送物件(Sender)送到StudentStatus接收物件(Receiver),訊息內容是一個命令,要求執行一個指定的方法query(),方法可以加上參數,例如:查詢學生姓名name的成績,訊息提供3種資訊,如下: Smalltalk:StudentStatus query:joe C++/Java:StudentStatus.query(joe); 訊息的「:」符號前是使用的程式語言,以後才是真正的訊息內容,指出接收物件是StudentStatus,要求執行的方法是query(),其參數是joe。 * * 訊息觀念-傳回值 在接收物件接到訊息後,就會執行指定的方法,然後回應訊息給發送物件(也可能不回應),稱為「傳回值」(Return Value),即查詢結果的學生成績,如下圖所示: * * 訊息觀念-循序操作(說明) 物件送出的訊息,有可能在接收物件執行方法後就產生回應訊息。 也有可能是觸發另一個訊息,操作會繼續送出一系列訊息給其他物件,以便依序執行各物件的指定方法來完成整個操作,稱為「循序操作」(Sequential Operation)。 * * 訊息觀念-循序操作(圖例) 例如:學生平均成績的查詢是送訊息到Teacher物件執行average()方法,Techer物件將觸發另一個訊息到StudentStatus物件查詢學生的三科成績,如下圖所示: * * 訊息觀念-過載 在物件導向程式設計的物件是依接收的訊息來執行不同的方法,換句話說,只需訊息不同足以讓物件辨識,一樣可以執行同名的方法。 例如:執行Utility物件的max()方法的訊息,如下所示: Utility.max(23, 45); Utility.max(23, 45, 87); Utility.max(‘a’, ‘z’); * * 訊息觀念-多形(說明) 「多形」(Polymorphism)是另一種名稱再用,這是指各物件針對同一個訊息擁有不同的反應,也就是同一個名稱擁有不同的操作。 因為在人類的思維中,對於同一種工作,就算對象不同,也會使用同名的操作。 * * 訊息觀念-多形(圖例) * * 訊息觀念-多形(圖例說明1) 使用Java程式模擬學生打球,對於Student學生物件來說,都是送出Sport.play();的相同訊息,表示打球,因為「動態連結」(Dynamic Binding)機制
您可能关注的文档
- aluminum windows system - orville奥为.pdf
- amt上交.ppt.ppt
- ansys与abaqus稳定性分析比较(转载-来自结构工程师崔家春的 ....doc
- aov检测 - 索菲尔检测机构.doc
- apc-tms2100-n 系列风机盘管温控器系列风机盘管温控器.pdf
- apc安保及环境监测解决方案 - 至顶网.doc
- application form for individual membership of cwea 中国风能协会 ....doc
- application of cvar metric in extreme value theory cvar度量在极 ....pdf
- applications lidar aux études physiques et environnementales.ppt
- architecture - 逢甲大学.ppt
文档评论(0)