面向對象編程OOP發展簡史

1、什麼是面向對象編程

面向對象編程,是一種通過對象的方式,把現實世界映射到計算機模型的一種編程方法。OOP圍繞對象而不是功能和邏輯來設計軟件架構。可以將對象定義爲具有唯一屬性和方法的一種數據類型。

2、面向對象發展歷史

在現代意義上的面向對象程序設計中,使用術語“對象”和“面向對象”的術語在1950年代末和1960年代初首次出現在麻省理工學院。

在1960-61年間,伊萬·薩瑟蘭(Ivan Sutherland)創建了 Sketchpad,伊萬在1963年基於其關於Sketchpad的論文的技術報告的詞彙表中,定義了“對象”和“實例”的概念。

1962年,克里斯汀·尼加德(Kristen Nygaard)在挪威計算機中心發起了一個模擬語言項目,Simula編程語言被設計出來使用。Simula引入了重要的概念,這些概念如今已成爲面向對象編程的重要組成部分,例如類和對象,繼承以及動態綁定。

1965年,Simula被指定爲第一種被廣泛認爲是“面向對象”的編程語言。與Sketchpad一樣,Simula具有對象功能,並最終引入了類,類繼承,子類和虛擬方法。

受到LISP的簡單性以及Simula 67的類和對象的啓發,並從Simula中汲取了類,對象和對象引用的思想。艾倫·凱(Alan Kay)大約在1966或1967年創建Smalltalk,Smalltalk對對象的概念進行了改進,並探索了像小型計算機這樣的對象的概念,或者像Kay所說的那樣:“對計算機本身的概念的遞歸。” 對象將數據(屬性)與對該數據進行的操作(方法)組合在一起,就像計算機將內存存儲在其中的數據與算術和邏輯單元對數據進行操作的方式相同。

在2003年的一次電子郵件交流中,艾倫·凱(Alan Kay)闡明瞭他將Smalltalk稱爲“面向對象”的含義:

“對我來說,面向對象操作僅意味着消息傳遞,本地保留和保護以及狀態過程的隱藏以及萬物的極端後期綁定。”
艾倫·凱(Alan Kay)

換句話說,根據Alan Kay的說法,OOP的基本要素是:

  • 訊息傳遞
  • 封裝形式
  • 動態綁定

值得注意的是,繼承和子類多態性被Alan Kay視爲OOP的必要組成部分,他創造了這個術語並將OOP推向大衆。

此後,Smalltalk影響了許多OOP語言,包括Objective-C(1984),Object Pascal(1986),Erlang(1986),CLOS(1987年左右),Ruby(1995),Java(1995),Python,PHP,Perl,Groovy (2003),Scala(2004),Dart(2011)等。

雖然OOP的大多數優點都可以在早期的Simula語言中獲得,但是直到1980年代中期,Bjarne Stroustrup 將C語言移入面向對象,創建了面向對象的C++語言。然後 C++在1990年代根深蒂固後,OOP纔開始蓬勃發展。


想看更多精彩內容,關注公衆號「前端隊長」,獲取更多前端技術與個人成長相關內容。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章