(1)對象。html
對象是人們要進行研究的任何事物,從最簡單的整數到複雜的飛機等都可看做對象,它不只能表示具體的事物,還能表示抽象的規則、計劃或事件。數據結構
(2)對象的狀態和行爲。函數
對象具備狀態,一個對象用數據值來描述它的狀態。性能
對象還有操做,用於改變對象的狀態,操做就是對象的行爲。設計
對象實現了數據和操做的結合,使數據和操做封裝於對象的統一體中htm
(3)類。對象
具備相同或類似性質的對象的抽象就是類。所以,對象的抽象是類,類的具體化就是對象,也能夠說類的實例是對象。繼承
類具備屬性,它是對象的狀態的抽象,用數據結構來描述類的屬性。事件
類具備操做,它是對象的行爲的抽象,用操做名和實現該操做的方法來描述。開發
(4)類的結構。
在客觀世界中有若干類,這些類之間有必定的結構關係。一般有兩種主要的結構關係,即通常--具體結構關係,總體--部分結構關係。
①通常——具體結構稱爲分類結構,也能夠說是「或」關係,或者是「is a」關係。
②總體——部分結構稱爲組裝結構,它們之間的關係是一種「與」關係,或者是「has a」關係。
(5)消息和方法。
對象之間進行通訊的結構叫作消息。在對象的操做中,當一個消息發送給某個對象時,消息包含接收對象去執行某種操做的信息。發送一條消息至少要包括說明接受消息的對象名、發送給該對象的消息名(即對象名、方法名)。通常還要對參數加以說明,參數能夠是認識該消息的對象所知道的變量名,或者是全部對象都知道的全局變量名。
類中操做的實現過程叫作方法,一個方法有方法名、參數、方法體。消息傳遞如圖10-1所示。
2、面向對象的特徵
(1)對象惟一性。
每一個對象都有自身惟一的標識,經過這種標識,可找到相應的對象。在對象的整個生命期中,它的標識都不改變,不一樣的對象不能有相同的標識。
(2)分類性。
分類性是指將具備一致的數據結構(屬性)和行爲(操做)的對象抽象成類。一個類就是這樣一種抽象,它反映了與應用有關的重要性質,而忽略<b>其餘</b>一些無關內容。任何類的劃分都是主觀的,但必須與具體的應用有關。
(3)繼承性。
繼承性是子類自動共享父類數據結構和方法的機制,這是類之間的一種關係。在定義和實現一個類的時候,能夠在一個已經存在的類的基礎之上來進行,把這個已經存在的類所定義的內容做爲本身的內容,並加入若干新的內容。
繼承性是面向對象程序設計語言不一樣於其它語言的最重要的特色,是其餘語言所沒有的。
在類層次中,子類只繼承一個父類的數據結構和方法,則稱爲單重繼承。
在類層次中,子類繼承了多個父類的數據結構和方法,則稱爲多重繼承。
在軟件開發中,類的繼承性使所創建的軟件具備開放性、可擴充性,這是信息組織與分類的行之有效的方法,它簡化了對象、類的建立工做量,增長了<b>代碼</b>的可重性。
採用繼承性,提供了類的規範的等級結構。經過類的繼承關係,使公共的特性可以共享,提升了軟件的重用性。
(4)多態性(多形性)
多態性是指相同的操做或函數、過程可做用於多種類型的對象上並得到不一樣的結果。不一樣的對象,收到同一消息能夠產生不一樣的結果,這種現象稱爲多態性。
多態性容許每一個對象以適合自身的方式去響應共同的消息。
多態性加強了軟件的靈活性和重用性。