1967年挪威计算中心的Kisten Nygaard和Ole Johan Dahl开发了Simula67语言,它提供了比子程序更高一级的抽象和封装,引入了数据抽象和类的概念,它被认为是第一个面向对象语言。20世纪70年代初,Palo Alto研究中心的Alan Kay所在的研究小组开发出Smalltalk语言,以后又开发出Smalltalk-80,Smalltalk-80被认为是最纯正的面向对象语言,它对后来出现的面向对象语言,如Object-C,C++,Self,Eiffl都产生了深远的影响。随着面向对象语言的出现,面向对象程序设计也就应运而生且获得迅速发展。以后,面向对象不断向其余阶段渗透,1980年Grady Booch提出了面向对象设计的概念,以后面向对象分析开始。1985年,第一个商用面向对象数据库问世。1990年以来,面向对象分析、测试、度量和管理等研究都获得长足发展。
实际上,“对象”和“对象的属性”这样的概念能够追溯到20世纪50年代初,它们首先出现于关于人工智能的早期著做中。可是出现了面向对象语言以后,面向对象思想才获得了迅速的发展。过去的几十年中,程序设计语言对抽象机制的支持程度不断提升:从机器语言到汇编语言,到高级语言,直到面向对象语言。汇编语言出现后,程序员就避免了直接使用0-1,而是利用符号来表示机器指令,从而更方便地编写程序;当程序规模继续增加的时候,出现了Fortran、C、Pascal等高级语言,这些高级语言使得编写复杂的程序变得容易,程序员们能够更好地对付日益增长的复杂性。可是,若是软件系统达到必定规模,即便应用结构化程序设计方法,局势仍将变得不可控制。做为一种下降复杂性的工具,面向对象语言产生了,面向对象程序设计也随之产生。程序员