面向对象程序设计
1、面向对象编程语言的出现
面向过程的程序设计把数据和数据处理过程分离为相互独立的实体,当数据结构改变时,所有相关的处理过程都要进行相应的修改,每一种相对于老问题的新方法都要带来额外的开销,程序的可用性极差。特别是在大型项目中,面向过程的编程面临着巨大挑战。为了解决这一问题,需要把数据与处理数据的过程作为一个整体,于是面向对象的编程语言应运而生。
1967年挪威计算中心的Kisten Nygaard和Ole Johan Dahl开发了Simula67语言,它提供了比函数更高一级的抽象和封装,引入了数据抽象和类的概念,它被认为是第一个面向对象的语言。20世纪70年代初,Palo Alto研究中心的Alan Kay所在的研究小组开发出Smalltalk语言,之后又开发出Smalltalk-80。Smalltalk-80被认为是最纯正的面向对象语言,它对后来出现的面向对象语言,如Object-C,C++,Self,Eiffl都产生了深远的影响。随着面向对象语言的出现,面向对象程序设计也就应运而生且得到迅速发展。
2、面向对象的程序设计
面向对象程序设计(Object-Oriented Programming, OOP)描述的是客观世界中的事物,以对象代表一个具体的事物,把数据和数据的操作方法放在一起而形成的一个相互依存又不可分割的整体。再找出同类型对象的共有属性和行为,形成类,这一过程称为抽象(abstract)。抽象是面向对象编程思想的本质,而类是其关键。类中的大多数数据只能用本类的方法进行处理,它与对象的关系是抽象与具体的对应,例如树是一个类,则杨树、桃树、柳树等就是树类的一个个对象。
类通过外部接口与外界发生关系,避免被外界函数意外改变,对象与对象之间通过消息进行通信。这样就保证了数据的独立性与安全性。
面向对象程序设计(OOP)方法首先要设计类,它准确的表述了程序要处理的数据,如造车程序就要定义轿车、汽车、卡车、火车等类,类定义描述了对每个类可执行的操作,如用轿车载人、卡车载物,然后设计一个程序来使用这些类的对象。
由此可见,面向对象程序设计所强调的基本原则就是直接面对客观存在的事物,将人们在日常生活中习惯的思维方式和表达方式应用在软件开发中,使软件开发从过分专业化的方法、规则中回到客观世界,回到人们通常的思维方式。相对于面向过程的思想,面向对象的思想更适用于大型系统项目的开发。
面向对象程序设计编程思想是当前计算机软件开发的主流,面向对象的概念和应用已经超越了程序设计和软件开发,扩展到了更广的范围,如数据库系统、交互式界面、分布式系统、网络管理结构、人工智能等领域。