《《面向對象技術》PPT課件》由會員分享,可在線閱讀,更多相關《《面向對象技術》PPT課件(23頁珍藏版)》請在裝配圖網上搜索。
1、第二講 面向對象技術 主講人: 呂松茂 主要內容 面向對象技術的提出 什么是面向對象技術 對象 類 封裝性 問題的提出 傳統(tǒng)的結構化程序設計( Structured Programming-SP) 方法 使用 SP方法設計程序的步驟 數據聲明 數據處理 結果輸出 在數據處理過程中,采用的是自頂向下、分而 治之的方法,將整個程序按功能劃分為幾個可 獨立編程的子過程模塊,每一子模塊完成指定 的子任務,并且提供一個清晰、嚴格的調用界 面,主過程通過調用各子過程完來成全部處理 工作 。 f( 1) 過程 /函數 f( 2) f( 2) f( 3) 數據結構 B A C 返回 存在的問題 ( 1) 數據
2、和函數分開 , 重疊的數據存取 使并行性和完整性的問題變得復雜 ( 2) 本質上是 面向過程 的 , 以功能和需 求為核心 , 而 “ 功能 ” 和 “ 需求 ” 又是 不穩(wěn)定和多變的 , 因此程序代碼經常要 進行修改 , 不易維護 。 ( 3) 程序代碼 可重用性差 。 程序中除少 數標準庫函數外 , 每設計一個程序時 , 程序員幾乎從零做起 。 即使重用代碼 , 通常也是通過拷貝或編輯重新生成一份 。 如何解決 面向對象技術 ( Object-Oriented Programming -OOP) 何為面向對象技術 與面向過程相對應(結構化程序設計) 心理學研究表明,客觀世界由許多對象組成,
3、 對象具有其屬性和行為,對象之間存在著各種 聯系,這樣能夠更好的刻畫問題域,也更接近 人類的自然思維方式。這就是面向對象程序開 發(fā)思想的由來。 面向對象的程序設計方法強調直接以問題域 (現實世界)中的事物為中心來思考和認識問 題,并按照這些事物的本質特征把它們抽象為 對象,以作為構成軟件系統(tǒng)的基礎。 f(1) f(2) 數據結構 簡單類(規(guī)則) + 復雜聯系 = 復雜系統(tǒng) 接口 函數 數據 比較 面向對象與面向過程設計對比 是一種數學思維或計 算機思維方法,與人 們認識世界的方法不 同 以不穩(wěn)定的、多變的 “過程”和“操作” 為中心來構造系統(tǒng) 可重用性較差 是建立在認識方法學 基礎上的一項技術
4、科 學,比較自然地模擬 了人類認識客觀世界 的方式; 以相對穩(wěn)定的“對象” 為中心來構造系統(tǒng) 可重用性較好 面向過程程序設計 面向對象程序設計 將設計目標從模擬現實世界的行為轉向了模 擬現實世界中存在的對象及其各自的行為。 面向對象程序設計是在吸取結構化程序設計 的一切優(yōu)點的基礎上發(fā)展起來的一種新的程序 設計方法。它的 本質 是 把數據和處理數據的 過程當成一個整體 對象。 在 OOP中,將 “ 對象 ” 作為系統(tǒng)中最基本的 運行實體,整個程序即由各種不同類型的對象 組成,各對象既是一個獨立的實體,又可通過 消息相互作用,對象中的方法決定要向哪個對 象發(fā)消息、發(fā)什么消息以及收到消息時如何進 行
5、處理等。 面向對象技術 對象 ( Object) 對象 是客觀世界中的事物在人腦中的映像 , 這種映像通過對同一類對象的抽象反映成 人的意識 , 并做為一種概念而存在 。 每個對象都具有 屬性 ( Attribute) 和 方 法 ( Method) 這兩方面的特征 。 對象的屬 性描述了對象的狀態(tài)和特征 , 對象的方法 說明了對象的行為和功能 , 并且對象的屬 性值只應由這個對象的方法來讀取和修改 , 兩者結合在一起就構成了對象的完整描述 。 對象例一 例 1:考慮對象 “學生”,具體描述為: 對象名 屬性 操作 學號、姓名、專業(yè)、性別、 年齡、身份證號、電話等等 獲取和修改學號、姓名、 專
6、業(yè)、性別、年齡等等 學生 ( 表一 ) 注意點 : 一體性 三者成為一體 對象例二 例 2:對象 “課程” 的有關抽象描述。 對象名 屬性 操作 課程 課程名、編號、學時數、選課 要求、任課教師等 獲取并修改課程名、編號、學 時數、選課要求、任課教師等 (表二 ) 注意點: 1. 屬性是對對象的靜態(tài)描述 . 2. 操作是對對象的動態(tài)描述 . 外部是通過調用服務與對 象取得聯系 . 類( Class) 具有相似屬性和行為的一組對象,就稱 為類。可見,有了類的概念以后,就可 以對具有共同特征的事物進行統(tǒng)一描述 類是面向對象語言必需提供的用戶定義 的數據類型,它將具有相同狀態(tài)、操作 和訪問機制的多個
7、對象 抽象 成為一個對 象類。 類與對象的關系 從一般意義上講,對象( Object) 是現實 世界中的 客觀事物 。 類是把具有相同屬性的事物劃分為一類, 從而得出的 抽象概念 。 類與對象的關系 類與對象的關系 類 對象 抽象定義 實例 學生 學生王強 汽車 桑塔納,奔馳,寶馬 類型 變量 , 如 C 語言中的 int 和 int x; 類的特點 -封裝與隱藏 將算法和數據結構有機集成在一起 傳統(tǒng)方法:數據和操作分離 支持模塊化程序設計 類成為基本的模塊,作為程序設計的基礎 保護私有成員,隱藏實現細節(jié) 使程序的可維護性、安全性得到保證 封裝( Encapsulation) 面向對象語言把數
8、據和操作封裝于對象 體之中,并提供一種訪問機制,使對象 的“私有數據”僅能由這個對象的操作 來執(zhí)行。用戶只能通過允許公開的操作 提出要求(消息),才能查詢和修改對 象的狀態(tài)。 封裝 封裝是面向對象方法的一個重要原則。它有兩 個涵義: 第一個涵義是,把對象的全部屬性和全部服務 結合在一起,形成一個不可分割的獨立單位 (即對象)。 第二個涵義也稱作“信息隱蔽”,即盡可能隱 蔽對象的內部細節(jié),對外形成一個邊界(或者 說形成一道屏障),只保留有限的對外接口使 之與外部發(fā)生聯系。這主要是指對象的外部不 能直接地存取對象的屬性,只能通過幾個允許 外部使用的服務與對象發(fā)生聯系。 f(1) f(2) 數據結構
9、 接口 封裝的例子 鍵盤 電視機 手機 面向對象技術的特點 ( 1) 以 對象 為中心 。 由于對象自然地反映了應用領 域的模塊性 , 因此具有相對穩(wěn)定性 , 可以被用作一 個組件去構成更復雜的應用 , 又由于對象一般封裝 的是某一實際需求的各種成分 , 因此 , 某一對象的 改變對整個系統(tǒng)幾乎沒有影響 。 ( 2) 封裝性 。 實現細節(jié)隱藏 , 增強了安全性和簡化 編程 , 使用者不必了解具體的實現細節(jié) , 而只需要 通過外部接口 , 以特定的訪問權限 , 來使用類的成 員 ( 3) 可復用性 。 新的應用程序設計可在原有對象的 數據類型和功能的基礎上通過重用 、 擴展和細化來 進行 , 而不必從頭做起或復制原有代碼 , 這樣 , 大 大減少了重新編寫新代碼的工作量 , 同時降低了程 序設計過程中出錯的可能性 , 達到了事半功倍的效 果 。 總結 面向對象技術 對象 類 封裝性 謝謝大家