物件導向的方法
過程導向的結構化程式設計方法
設計思路
- 自頂向下、逐步求精。採用模組分解與功能抽象,自頂向下、分而治之。
程式結構:
- 按功能劃分為若干個基本模組。
- 各模組間的關係盡可能簡單,功能上相對獨立;每一模組內部均是由順序、選擇和迴圈三種基本結構組成。
- 其模組化實現的具體方法是使用子程式。
優點:
- 有效地將一個較複雜的程式系統設計任務分解成許多易於控制和處理的子任務,便於開發和維護。
缺點:
- 可重用性差、資料安全性差、難以開發大型軟體和圖形界面的應用軟體將資料和處理資料的過程分離為相互獨立的實體。
- 當資料結構改變時,所有相關的處理過程都要進行相應的修改。
- 每一種相對於舊問題的新方法都要帶來額外的開銷。
- 圖形使用者介面的應用程式,很難用過程來描述和實現,開發和維護也都很困難。
物件導向的方法
- 將資料及對資料的操作方法封裝在一起,作為一個相互依存、不可分離的整體——物件。
- 對同類型物件抽象出其共性,形成類別。
- 類別透過一個簡單的外部介面,與外界發生關係。
- 物件與物件之間透過訊息進行通信。
優點:
- 程式模組間的關係更為簡單,程式模組的獨立性、資料的安全性有了良好的保障。
- 透過繼承與多型性,可以大大提高程式的可重用性,使得軟體的開發和維護都更為方便。
物件導向的基本概念【物件】
一般意義上的物件:
- 是現實世界中一個實際存在的事物。
- 可以是有形的(比如一輛汽車),也可以是無形的(比如一項計畫)。
- 是構成世界的一個獨立單位,具有
- 靜態特徵:可以用某種資料來描述
- 動態特徵:物件所表現的行為或具有的功能
物件導向方法中的物件:
- 是系統中用來描述客觀事物的一個實體,它是用來構成系統的一個基本單位。物件由一組屬性和一組行為構成。
- 屬性:用來描述物件靜態特徵的資料項。
- 行為:用來描述物件動態特徵的操作序列。
物件導向的基本概念【類別】
類別
- 分類——人類通常的思維方法
- 分類所依據的原則——抽象
- 忽略事物的非本質特徵,只注意那些與當前目標有關的本質特徵,從而找出事物的共性,把具有共同性質的事物劃分為一類,得出一個抽象的概念。
- 例如,石頭、樹木、汽車、房屋等都是人們在長期的生產和生活實踐中抽象出的概念。
物件導向方法中的類別
- 具有相同屬性和服務的一組物件的集合
- 為屬於該類別的全部物件提供了抽象的描述,包括屬性和行為兩個主要部分。
- 類別與物件的關係:
- 猶如模具與鑄件之間的關係,一個屬於某類別的物件稱為該類別的一個實例。
物件導向的基本概念【封裝】
- 把物件的屬性和服務結合成一個獨立的系統單元。
- 儘可能隱蔽物件的內部細節。對外形成一個邊界(或者說一道屏障),只保留有限的對外介面使之與外部發生聯繫
物件導向的基本概念【繼承】
- 繼承對於軟體重用有著重要意義,是物件導向技術能夠提高軟體開發效率的重要原因之一。
定義:
- 特殊類別的物件擁有其一般類別的全部屬性與服務,稱作特殊類別對一般類別的繼承。
- 例如:將圖形作為一個一般類別,圓形便是一個特殊類別。
物件導向的基本概念【多型性】
- 多型是指在一般類別中定義的屬性或行為,被特殊類別繼承之後,可以具有不同的資料型態或表現出不同的行為。這使得同一個屬性或行為在一般類別及其各個特殊類別中具有不同的語義。
- 例如:
- 圖形類別:計算圖形面積->圓形類別計算圓面積 ->矩形類別計算矩形面積。