面向对象编程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才开始蓬勃发展。


想看更多精彩内容,关注公众号「前端队长」,获取更多前端技术与个人成长相关内容。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 今天感恩节哎,感谢一直在我身边的亲朋好友。感恩相遇!感恩不离不弃。 中午开了第一次的党会,身份的转变要...
    余生动听阅读 10,793评论 0 11
  • 彩排完,天已黑
    刘凯书法阅读 4,449评论 1 3
  • 表情是什么,我认为表情就是表现出来的情绪。表情可以传达很多信息。高兴了当然就笑了,难过就哭了。两者是相互影响密不可...
    Persistenc_6aea阅读 129,283评论 2 7

友情链接更多精彩内容