物件导向技术导论

物件导向技术导论

ID:46289685

大小:3.63 MB

页数:55页

时间:2019-11-22

物件导向技术导论_第1页
物件导向技术导论_第2页
物件导向技术导论_第3页
物件导向技术导论_第4页
物件导向技术导论_第5页
资源描述:

《物件导向技术导论》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第2章物件導向技術導論2-1程式設計方法2-2抽象資料型態2-3物件導向的思維2-4物件導向技術的三大觀念2-5物件導向程式語言2-1程式設計方法2-1-1非結構化程式設計2-1-2程序式與結構化程式設計2-1-3模組化程式設計2-1-4物件導向程式設計2-1程式設計方法-說明一般來說,初學程式設計者在逐漸建立深厚的程式設計功力前,學習程式設計通常都會經歷數個學習過程,即四種「程式設計技術」(ProgrammingTechniques),或稱為「程式設計風格」(ProgrammingStyles),如下所示:非結構化程式設計(UnstructuredProgramming)。程

2、序式程式設計(ProceduralProgramming)與結構化程式設計(StructuredProgramming)。模組化程式設計(ModularProgramming)。物件導向程式設計(Object-OrientedProgramming)。2-1-1非結構化程式設計早期BASIC、機器語言或組合語言建立的程式,很多仍然是使用非結構化程式設計來建立程式碼。對於C、C++或Java語言來說,所謂非結構化程式設計是指初學程式設計時,不論幾列的小程式或數百列程式碼的大程式,都只有一個main()主程式且不包含任何流程控制敘述的情況。非結構化程式設計的程式碼是使用線性方式來依

3、序的執行,如右圖所示:2-1-2程序式與結構化程式設計程序式程式設計是將程式中重複的程式片斷抽出成為程序(Procedures,或稱為Subroutine、Routine)或函數(Functions),也就是一段執行特定功能的程式區塊。程式因為已經分割成程序,所以在main()主程式的程式碼只是依序呼叫不同程序或函數的程序呼叫(ProcedureCall)。程式是使用流程控制連接程序,即目前程式設計最常使用的結構化程式設計,屬於程序式程式設計的子集,如右圖所示:2-1-3模組化程式設計模組化程式設計是程序式程式設計的下一個階段,為了能夠重複使用程序式程式設計分割建立的程序,我們

4、可以將相同功能的程序或函數結合在一起建立成獨立的「模組」(Modules),模組是處理指定功能的子程式,如下圖所示:2-1-4物件導向程式設計模組化程式設計是物件導向程式設計的前身,只是沒有提供繼承和多形等物件導向觀念。物件導向程式設計是一種更符合人性化的程式設計方法,將原來專注於問題的分解,轉換成了解問題本質參與的東西,也就是「物件」(Object),如下圖所示:2-2抽象資料型態2-2-1程序或函數抽象化2-2-2資料抽象化2-2-3抽象資料型態2-2-4抽象資料型態與物件導向2-2抽象資料型態物件導向程式設計的精神是資料抽象化,透過抽象資料型態建立電腦與真實世界之間的橋樑

5、,描述和模擬真實世界的實體,即東西,簡單的說,物件導向程式設計就是一種抽象資料型態的程式設計。「抽象化」(Abstraction)的主要目的是定義問題的二個屬性,如下所示:資料(Data):問題影響的資料。操作(Operators):問題產生的操作。2-2-1程序或函數抽象化-由上而下的設計方法程序或函數抽象化(ProcedureAbstractionorFunctionAbstraction)主要是針對傳統由上而下的設計方法,將問題分割成一個個子工作。由上而下的設計方法(Top-downDesign)是以程序為單位來切割工作,也就是所謂的「程序式程式設計」(Procedura

6、lDesign)。由上而下的設計方法是一種循序漸進了解問題的方法。筆者準備使用一個實例來說明分割工作的過程。2-2-1程序或函數抽象化-範例例如:目前有一個工作是繪出房屋的圖形,房屋圖形的繪圖工作不是一筆畫就可以完成,所以,我們可以分割成多個小工作來分別處理,以由上而下的設計方法來了解整個繪圖工作的問題。2-2-1程序或函數抽象化-步驟一從房屋繪圖工作可以粗分為三個小工作,如下所示:繪出屋頂和外框。繪出窗戶。繪出門。依據上述工作分割,可以建立各分割小工作之間的模組架構,如下圖所示:CallDrawOutlineCallDrawWindowsCallDrawDoor2-2-1程序

7、或函數抽象化-步驟二將第一個小工作【繪出屋頂和外框】(DrawOutline)再次進行分割成二個小工作,如下所示:繪出屋頂。繪出房屋的外框。CallDrawRoofCallDrawHouseFrame2-2-1程序或函數抽象化-其他步驟現在,我們只需重複上述分析,一步一步向下進行分割工作,例如:因為窗戶有2個,所以【繪出窗戶】可以分為【繪出窗戶1】和【繪出窗戶2】;【繪出門】可以分為【繪出門框】和【繪出門把】。最後,將問題分割成一個個小問題後,每一個小問題就是一個程序或函數,只需完成這些程序

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。