什么是面向对象(徐克达)
自从我们第一次接触Java,就被告知它是一种面向对象的语言。那么面向对象到底是什么意思呢?
什么是面向对象
面向对象是一种软件开发方法。面向对象的概念和应用已经超越了编程和软件开发,扩展到数据库系统、交互界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种理解和抽象现实世界的方法,是计算机编程技术发展到一定阶段的产物。
面向对象的特性
(1)对象的唯一性
每个对象都有自己的唯一标识符,通过它可以找到相应的对象。在一个物体的一生中,它的同一性是不变的,不同的物体不能有相同的同一性。
(2)抽象
抽象是指将具有一致数据结构(属性)和行为(操作)的对象抽象成类。一个类就是这样一个抽象,它反映了与应用程序相关的重要属性,而忽略了其他无关的内容。任何一个类的分类都是主观的,但一定要和具体应用相关。[2]
(3)继承
继承是子类自动共享父类的数据结构和方法的机制,是类之间的一种关系。在定义和实现一个类的时候,我们可以在一个已有类的基础上进行,把已有类定义的内容作为自己的内容,添加一些新的内容。[2]
继承是面向对象编程语言不同于其他语言的最重要的特征。
在类层次结构中,子类只继承一个父类的数据结构和方法,称为单继承。
在类层次结构中,子类继承多个父类的数据结构和方法,称为多重继承。
多重继承,JAVA,VB,NET,Objective-C只支持单一继承。注意C++多重继承中的歧义。
(4)多态性
多态是指相同的操作、函数和过程可以作用于不同类型的对象,获得不同的结果。不同的对象在收到相同的消息时会产生不同的结果。这种现象叫做多态性。
多态性允许每个对象以自己的方式响应公共消息。
多态增强了软件的灵活性和可重用性。
面向对象的开发方法
⒈Booch方法
Booch首先描述了面向对象软件开发方法的基本问题,指出面向对象开发是一种从根本上不同于传统功能分解的设计方法。面向对象的软件分解更接近于人们对客观事物的理解,而功能分解只能通过问题空之间的转换才能得到。
⒉Coad方法
Coad方法是Coad和Yourdon在1989年提出的面向对象的开发方法。这种方法的主要优点是通过多年的大规模系统开发经验和面向对象概念的有机结合,在对象、结构、属性和操作的识别上提出了一套系统原则。这种方法从需求的角度完成了类和类层次的识别。Coad方法虽然没有引入类和类层次的术语,但实际上它在分类结构、属性、操作、消息关联等概念上体现了类和类层次的特点。
[3] OMT方法
这种方法是一种新的面向对象的开发方法。开发工作的基础是对现实世界的对象建模,然后围绕这些对象使用分析模型进行独立于语言的设计。面向对象的建模和设计促进了对需求的理解,有利于开发出更清晰、更易于维护的软件系统。该方法为大多数应用领域的软件开发提供了实用高效的保障,力求找到一种实用的解决问题的方法。