面向物件的特徵

  面向物件是軟體開發方法。相信大家都不太瞭解面向物件的概念,以下是由小編整理關於什麼是面向物件的內容,希望大家喜歡!

  面向物件的概念

  1、物件。

  物件是人們要進行研究的任何事物,從最簡單的整數到複雜的飛機等均可看作物件,它不僅能表示具體的事物,還能表示抽象的規則、計劃或事件。

  2、物件的狀態和行為。

  物件具有狀態,一個物件用資料值來描述它的狀態。

  物件還有操作,用於改變物件的狀態,物件及其操作就是物件的行為。

  物件實現了資料和操作的結合,使資料和操作封裝於物件的統一體中

  3、類。

  具有相同特性***資料元素***和行為***功能***的物件的抽象就是類。因此,物件的抽象是類,類的具體化就是物件,也可以說類的例項是物件,類實際上就是一種資料型別。

  類具有屬性,它是物件的狀態的抽象,用資料結構來描述類的屬性。

  類具有操作,它是物件的行為的抽象,用操作名和實現該操作的方法來描述。

  4、類的結構。

  在客觀世界中有若干類,這些類之間有一定的結構關係。通常有兩種主要的結構關係,即一般--具體結構關係,整體--部分結構關係。

  ①一般--具體結構稱為分類結構,也可以說是“或”關係,或者是“is a”關係。

  ②整體--部分結構稱為組裝結構,它們之間的關係是一種“與”關係,或者是“has a”關係。

  5、訊息和方法。

  物件之間進行通訊的結構叫做訊息。在物件的操作中,當一個訊息傳送給某個物件時,訊息包含接收物件去執行某種操作的資訊。傳送一條訊息至少要包括說明接受訊息的物件名、傳送給該物件的訊息名***即物件名、方法名***。一般還要對引數加以說明,引數可以是認識該訊息的物件所知道的變數名,或者是所有物件都知道的全域性變數名。

  類中操作的實現過程叫做方法,一個方法有方法名、返回值、引數、方法體。

  

  1、物件唯一性。

  每個物件都有自身唯一的標識,通過這種標識,可找到相應的物件。在物件的整個生命期中,它的標識都不改變,不同的物件不能有相同的標識。

  2、抽象性。

  抽象性是指將具有一致的資料結構***屬性***和行為***操作***的物件抽象成類。一個類就是這樣一種抽象,它反映了與應用有關的重要性質,而忽略其他一些無關內容。任何類的劃分都是主觀的,但必須與具體的應用有關。

  3、繼承性。

  繼承性是子類自動共享父類資料結構和方法的機制,這是類之間的一種關係。在定義和實現一個類的時候,可以在一個已經存在的類的基礎之上來進行,把這個已經存在的類所定義的內容作為自己的內容,並加入若干新的內容。

  繼承性是面向物件程式設計語言不同於其它語言的最重要的特點,是其他語言所沒有的。

  在類層次中,子類只繼承一個父類的資料結構和方法,則稱為單重繼承。

  在類層次中,子類繼承了多個父類的資料結構和方法,則稱為多重繼承。

  多重繼承,JAVA、VB、NET、Objective-C均僅支援單繼承,注意在C++多重繼承時,需小心二義性。

  在軟體開發中,類的繼承性使所建立的軟體具有開放性、可擴充性,這是資訊組織與分類的行之有效的方法,它簡化了物件、類的建立工作量,增加了程式碼的可重用性。

  採用繼承性,提供了類的規範的等級結構。通過類的繼承關係,使公共的特效能夠共享,提高了軟體的重用性。

  4、多型性***多形性***

  多型性是指相同的操作或函式、過程可作用於多種型別的物件上並獲得不同的結果。不同的物件,收到同一訊息可以產生不同的結果,這種現象稱為多型性。

  多型性允許每個物件以適合自身的方式去響應共同的訊息。

  多型性增強了軟體的靈活性和重用性。

  面向物件的要素

  1、抽象。

  抽象是指強調實體的本質、內在的屬性。在系統開發中,抽象指的是在決定如何實現物件之前的物件的意義和行為。使用抽象可以儘可能避免過早考慮一些細節。

  類實現了物件的資料***即狀態***和行為的抽象。

  2、封裝性***資訊隱藏***。

  封裝性是保證軟體部件具有優良的模組性的基礎。

  面向物件的類是封裝良好的模組,類定義將其說明***使用者可見的外部介面***與實現***使用者不可見的內部實現***顯式地分開,其內部實現按其具體定義的作用域提供保護。

  物件是封裝的最基本單位。封裝防止了程式相互依賴性而帶來的變動影響。面向物件的封裝比傳統語言的封裝更為清晰、更為有力。

  3、共享性

  面向物件技術在不同級別上促進了共享

  同一類中的共享。同一類中的物件有著相同資料結構。這些物件之間是結構、行為特徵的共享關係。

  在同一應用中共享。在同一應用的類層次結構中,存在繼承關係的各相似子類中,存在資料結構和行為的繼承,使各相似子類共享共同的結構和行為。使用繼承來實現程式碼的共享,這也是面向物件的主要優點之一。

  在不同應用中共享。面向物件不僅允許在同一應用中共享資訊,而且為未來目標的可重用設計準備了條件。通過類庫這種機制和結構來實現不同應用中的資訊共享。

  4、強調物件結構而不是程式結構