如下是整篇文章的結構,所需閱讀時間大約 8min

定義
Object Oriented(面向對象,OO)所謂面向對象就是基于對象概念,以對象為中心,以類和繼承為構造機制,來認識、理解、刻畫客觀世界和設計、構建相應的軟件系統(tǒng)。
面向對象的基本概念
對象:對象是要研究的任何事物。從一本書到一家圖書館,單的整數(shù)到整數(shù)列龐大的數(shù)據(jù)庫、極其復雜的自動化工廠、航天飛機都可看作對象,它不僅能表示有形的實體,也能表示無形的(抽象的)規(guī)則、計劃或事件。對象由數(shù)據(jù)(描述事物的屬性)和作用于數(shù)據(jù)的操作(體現(xiàn)事物的行為)構成一獨立整體。從程序設計者來看,對象是一個程序模塊,從用戶來看,對象為他們提供所希望的行為。在對內(nèi)的操作通常稱為方法。
類:類是對象的模板。即類是對一組有相同數(shù)據(jù)和相同操作的對象的定義,一個類所包含的方法和數(shù)據(jù)描述一組對象的共同屬性和行為。類是在對象之上的抽象,對象則是類的具體化,是類的實例。類可有其子類,也可有其它類,形成類層次結構
消息:消息是對象之間進行通信的一種規(guī)格說明。一般它由三部分組成:接收消息的對象、消息名及實際變元。
面向對象主要特征
封裝:封裝是一種信息隱蔽技術,它體現(xiàn)于類的說明,使數(shù)據(jù)更安全.是對象的重要特性。封裝使數(shù)據(jù)和加工該數(shù)據(jù)的方法(函數(shù))封裝為一個整體,以實現(xiàn)獨立性很強的模塊,使得用戶只能見到對象的外特性(對象能接受哪些消息,具有那些處理能力),而對象的內(nèi)特性(保存內(nèi)部狀態(tài)的私有數(shù)據(jù)和實現(xiàn)加工能力的算法)對用戶是隱蔽的。封裝的目的在于把對象的設計者和對象者的使用分開,使用者不必知曉行為實現(xiàn)的細節(jié),只須用設計者提供的消息來訪問該對象。
繼承:繼承性是子類自動共享父類之間數(shù)據(jù)和方法的機制。它由類的派生功能體現(xiàn)。一個類直接繼承其它類的全部描述,同時可修改和擴充。
繼承具有傳遞性和單根性.如果B類繼承了A類,而C類又繼承了B類,則可以說,C類在繼承了B類的同時,也繼承了A類,C類中的對象,可以實現(xiàn)A類中的方法.一個類,只能夠同時繼承另外一個類,而不能同時繼承多個類,通常所說的多繼承是指一個類在繼承其父類的同時,實現(xiàn)其他接口.類的對象是各自封閉的,如果沒繼承性機制,則類對象中數(shù)據(jù)、方法就會出現(xiàn)大量重復。繼承支持系統(tǒng)的可重用性,從而達到減少代碼量的作用,而且還促進系統(tǒng)的可擴充性。
多態(tài):對象根據(jù)所接收的消息而做出動作。同一消息為不同的對象接受時可產(chǎn)生完全不同的行動,這種現(xiàn)象稱為多態(tài)性。利用多態(tài)性用戶可發(fā)送一個通用的信息,而將所有的實現(xiàn)細節(jié)都留給接受消息的對象自行決定,如是,同一消息即可調(diào)用不同的方法。例如:Print消息被發(fā)送給一圖或表時調(diào)用的打印方法與將同樣的Print消息發(fā)送給一正文文件而調(diào)用的打印方法會完全不同。多態(tài)性的實現(xiàn)受到繼承性的支持,利用類繼承的層次關系,把具有通用功能的協(xié)議存放在類層次中盡可能高的地方,而將實現(xiàn)這一功能的不同方法置于較低層次,這樣,在這些低層次上生成的對象就能給通用消息以不同的響應。在OOPL中可通過在派生類中重定義基類函數(shù)(定義為重載函數(shù)或虛函數(shù))來實現(xiàn)多態(tài)性。
綜上可知,在OO方法中,對象和傳遞消息分別表現(xiàn)事物及事物間相互聯(lián)系的概念。類和繼承是是適應人們一般思維方式的描述范式。方法是允許作用于該類對象上的各種操作。這種對象、類、消息和方法的程序設計范式的基本點在于對象的封裝性和類的繼承性。通過封裝能將對象的定義和對象的實現(xiàn)分開,通過繼承能體現(xiàn)類與類之間的關系,以及由此帶來的動態(tài)聯(lián)編和實體的多態(tài)性,從而構成了面向對象的基本特征。
面向對象的要素
抽象
抽象是指強調(diào)實體的本質、內(nèi)在的屬性。在系統(tǒng)開發(fā)中,抽象指的是在決定如何實現(xiàn)對象之前的對象的意義和行為。使用抽象可以盡可能避免過早考慮一些細節(jié)。類實現(xiàn)了對象的數(shù)據(jù)(即狀態(tài))和行為的抽象。
封裝性
封裝性是保證軟件部件具有優(yōu)良的模塊性的基礎。面向對象的類是封裝良好的模塊,類定義將其說明(用戶可見的外部接口)與實現(xiàn)(用戶不可見的內(nèi)部實現(xiàn))顯式地分開,其內(nèi)部實現(xiàn)按其具體定義的作用域提供保護。
對象是封裝的最基本單位。封裝防止了程序相互依賴性而帶來的變動影響。面向對象的封裝比傳統(tǒng)語言的封裝更為清晰、更為有力。
共享性
面向對象技術在不同級別上促進了共享
同一類中的共享。同一類中的對象有著相同數(shù)據(jù)結構。這些對象之間是結構、行為特征的共享關系。
在同一應用中共享。在同一應用的類層次結構中,存在繼承關系的各相似子類中,存在數(shù)據(jù)結構和行為的繼承,使各相似子類共享共同的結構和行為。使用繼承來實現(xiàn)代碼的共享,這也是面向對象的主要優(yōu)點之一。
在不同應用中共享。面向對象不僅允許在同一應用中共享信息,而且為未來目標的可重用設計準備了條件。通過類庫這種機制和結構來實現(xiàn)不同應用中的信息共享。