第二講面向對象技術_第1頁
第二講面向對象技術_第2頁
第二講面向對象技術_第3頁
第二講面向對象技術_第4頁
第二講面向對象技術_第5頁
已閱讀5頁,還剩18頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第二講 面向對象技術主講人:1主要內容面向對象技術的提出什么是面向對象技術對象類封裝性2問題的提出傳統的結構化程序設計(Structured Programming-SP)方法 使用SP方法設計程序的步驟數據聲明數據處理結果輸出在數據處理過程中,采用的是自頂向下、分而治之的方法,將整個程序按功能劃分為幾個可獨立編程的子過程模塊,每一子模塊完成指定的子任務,并且提供一個清晰、嚴格的調用界面,主過程通過調用各子過程完來成全部處理工作 。3f(1)過程/函數f(2)f(2)f(3)數據結構BAC返回4存在的問題(1)數據和函數分開,重疊的數據存取使并行性和完整性的問題變得復雜(2)本質上是面向過程的

2、,以功能和需求為核心,而“功能”和“需求”又是不穩定和多變的,因此程序代碼經常要進行修改,不易維護。(3)程序代碼可重用性差。程序中除少數標準庫函數外,每設計一個程序時,程序員幾乎從零做起。即使重用代碼,通常也是通過拷貝或編輯重新生成一份。5如何解決面向對象技術(Object-Oriented Programming -OOP)6何為面向對象技術與面向過程相對應(結構化程序設計)心理學研究表明,客觀世界由許多對象組成,對象具有其屬性和行為,對象之間存在著各種聯系,這樣能夠更好的刻畫問題域,也更接近人類的自然思維方式。這就是面向對象程序開發思想的由來。面向對象的程序設計方法強調直接以問題域(現實

3、世界)中的事物為中心來思考和認識問題,并按照這些事物的本質特征把它們抽象為對象,以作為構成軟件系統的基礎。7f(1)f(2)數據結構簡單類(規則) + 復雜聯系 = 復雜系統 接口函數數據比較8面向對象與面向過程設計對比是一種數學思維或計算機思維方法,與人們認識世界的方法不同以不穩定的、多變的“過程”和“操作” 為中心來構造系統可重用性較差是建立在認識方法學基礎上的一項技術科學,比較自然地模擬了人類認識客觀世界的方式;以相對穩定的“對象” 為中心來構造系統可重用性較好面向過程程序設計面向對象程序設計9將設計目標從模擬現實世界的行為轉向了模擬現實世界中存在的對象及其各自的行為。 面向對象程序設計

4、是在吸取結構化程序設計的一切優點的基礎上發展起來的一種新的程序設計方法。它的本質是把數據和處理數據的過程當成一個整體對象。在OOP中,將“對象”作為系統中最基本的運行實體,整個程序即由各種不同類型的對象組成,各對象既是一個獨立的實體,又可通過消息相互作用,對象中的方法決定要向哪個對象發消息、發什么消息以及收到消息時如何進行處理等。面向對象技術10對象(Object)對象是客觀世界中的事物在人腦中的映像,這種映像通過對同一類對象的抽象反映成人的意識,并做為一種概念而存在。每個對象都具有屬性(Attribute)和方法(Method)這兩方面的特征。對象的屬性描述了對象的狀態和特征,對象的方法說明

5、了對象的行為和功能,并且對象的屬性值只應由這個對象的方法來讀取和修改,兩者結合在一起就構成了對象的完整描述。 11對象例一例 1:考慮對象 “學生”,具體描述為:對象名屬性操作學號、姓名、專業、性別、年齡、身份證號、電話等等獲取和修改學號、姓名、專業、性別、年齡等等學生( 表一 )注意點: 一體性 三者成為一體12對象例二例 2:對象 “課程” 的有關抽象描述。對象名屬性操作課程課程名、編號、學時數、選課要求、任課教師等獲取并修改課程名、編號、學時數、選課要求、任課教師等(表二 )注意點: 1. 屬性是對對象的靜態描述. 2. 操作是對對象的動態描述. 外部是通過調用服務與對 象取得聯系.13

6、類(Class)具有相似屬性和行為的一組對象,就稱為類。可見,有了類的概念以后,就可以對具有共同特征的事物進行統一描述類是面向對象語言必需提供的用戶定義的數據類型,它將具有相同狀態、操作和訪問機制的多個對象抽象成為一個對象類。14類與對象的關系從一般意義上講,對象(Object)是現實世界中的客觀事物。類是把具有相同屬性的事物劃分為一類,從而得出的抽象概念。15類與對象的關系類與對象的關系 類 對象 抽象定義 實例 學生 學生王強 汽車 桑塔納,奔馳,寶馬 類型 變量, 如 C 語言中的 int 和 int x; 16類的特點-封裝與隱藏將算法和數據結構有機集成在一起傳統方法:數據和操作分離支

7、持模塊化程序設計類成為基本的模塊,作為程序設計的基礎保護私有成員,隱藏實現細節使程序的可維護性、安全性得到保證17封裝(Encapsulation)面向對象語言把數據和操作封裝于對象體之中,并提供一種訪問機制,使對象的“私有數據”僅能由這個對象的操作來執行。用戶只能通過允許公開的操作提出要求(消息),才能查詢和修改對象的狀態。18封裝封裝是面向對象方法的一個重要原則。它有兩個涵義:第一個涵義是,把對象的全部屬性和全部服務結合在一起,形成一個不可分割的獨立單位(即對象)。第二個涵義也稱作“信息隱蔽”,即盡可能隱蔽對象的內部細節,對外形成一個邊界(或者說形成一道屏障),只保留有限的對外接口使之與外部發生聯系。這主要是指對象的外部不能直接地存取對象的屬性,只能通過幾個允許外部使用的服務與對象發生聯系。f(1)f(2)數據結構接口19封裝的例子鍵盤電視機手機20面向對象技術的特點(1)以對象為中心。由于對象自然地反映了應用領域的模塊性,因此具有相對穩定性,可以被用作一個組件去構成更復雜的應用,又由于對象一般封裝的是某一實際需求的各種成分,因此,某一對象的改變對整個系統幾乎沒有影響。(2)封裝性。實現細節隱藏,增強了安全性和簡化編程,使用者不必了解具體的實現細節,而只需要通過外部接口,以特定的訪問權限,來使用類的成員(3)可復用性。新的應用程

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論