1. 程式人生 > >面向物件的一些概念及舉例說明

面向物件的一些概念及舉例說明

面向物件方法具有以下4個要點:

  (1)認為客觀世界是由各種物件組成的,任何事物都是物件,複雜的物件以某種方式組合而成。即面向物件的方法用物件分解取代了傳統方法的功能分解。

  (2)把所有物件都劃分成各種物件類,每個物件類都定義了一組資料和方法。資料用於表示物件的靜態屬性,是物件的裝填資訊。

  (3)按照子類(或稱為派生類)與父類(或成為基類)的關係,把若干個物件類組合成一個層次結構的系統。

  (4)物件彼此之間僅能通過傳遞訊息互相聯絡,即封裝性(黑盒子)。

  綜上所述:只有同時使用物件、類、繼承和訊息的方法才是真正面向物件的方法,否則只能稱之為基於物件的方法。

物件的特點:

  (1)以資料為中心;(2)物件是主動地;(3)實現了資料封裝;(4)本質上具有並行性;(5)模組獨立性好。

相關概念:

  (1)類:類是對具有相同屬性和行為的一個或是多個物件的描述。

  (2)例項:由某個特定的類所描述的一個具體的物件,即物件是類的例項化。

  (3)訊息:要求某個物件執行在定義它的那個類中所定義的某個操作的規格說明。 

  【通常,一個訊息由三個部分組成:接收訊息的物件、訊息名、零個或多個變元。eg:MyCircle.Show(Green)】

  (4)方法:物件所能執行的操作,也就是類中所定義的服務。方法描述了物件執行操作的演算法,響應訊息的方法,在C++語言中將方法稱為成員函式。

  【若是Circle類的物件能夠響應讓它在螢幕顯示自己的訊息Show(Green),那麼在Circle類中必須給出成員函式Show(int Color)的定義,即給出成員函式的實現程式碼】

  (5)屬性:指類中所定義的資料,它是對客觀世界實體所具有的性質的抽象。類的每個例項都有自己的特有屬性值。

  【例如Circle類中定義的代表圓心座標、半徑、顏色等資料成員就是圓的屬性】

  (6)封裝:把資料和實現操作的程式碼集中起來放在物件內部。即將物件看成是不透明的黑盒子,達到了資訊隱蔽的目的,外人無法探知細節。

  (7)繼承:子類從基類中直接獲得已經定義的資料和方法的機制,不用重複定義,有效減少了程式的冗餘資訊。

  (8)多型:同樣的訊息在傳送過程中,既可以發給父類物件,也可以發給子類物件,不分類等級。然而不同層次中的每個類按照各自的需要來實現這個行為(方法)。這樣做能顯著提高軟體的可重用性和可擴充性。