面向对象(Object Oriented,OO)是软件开发方法。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。
面向对象是在结构化设计方法出现很多问题的情况下应运而生的。结构化设计方法求解问题的基本策略是从功能的角度审视问题域。它将应用程序看成实现某些特定任务的功能模块,其中子过程是实现某项具体操作的底层功能模块。在每个功能模块中,用数据结构描述待处理数据的组织形式,用算法描述具体的操作过程。面对日趋复杂的应用系统,这种开发思路在下面几个方面逐渐暴露了一些弱点。
概念:
⑴对象。
对象具有状态,一个对象用数据值来描述它的状态。
对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。
在客观世界中有若干类,这些类之间有一定的结构关系。通常有两种主要的结构关系,即一般--具体结构关系,整体--部分结构关系。
①一般--具体结构称为分类结构,也可以说是“或”关系,或者是“is a”关系。
②整体--部分结构称为组装结构,它们之间的关系是一种“与”关系,或者是“has a”关系。
⑸消息和方法。
⑸消息和方法。
对象之间进行通信的结构叫做消息。在
对象的操作中,当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的信息。发送一条消息至少要包括说明接受消息的
对象名、发送给该对象的消息名(即对象名、方法名)。一般还要对参数加以说明,参数可以是认识该消息的
对象所知道的
变量名,或者是所有对象都知道的全局
变量名。
类中操作的实现过程叫做方法,一个方法有方法名、返回值、参数、方法体。
类中操作的实现过程叫做方法,一个方法有方法名、返回值、参数、方法体。
⑴
对象唯一性。
⑵
抽象性。
抽象性是指将具有一致的
数据结构(属性)和行为(操作)的对象
抽象成类。一个类就是这样一种
抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容。任何类的划分都是主观的,但必须与具体的应用有关。
⑶
继承性。
继承性是子类自动共享父类
数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。
继承性是
面向对象程序设计语言不同于其它语言的最重要的特点,是其他语言所没有的。
多重继承,JAVA、VB、NET、Objective-C均仅支持单继承,注意在C++多重继承时,需小心二义性。
⑷
多态性(多形性)
多态性增强了软件的灵活性和重用性。
模型
对象模型
对象模型表示了静态的、结构化的系统数据性质,描述了系统的静态结构,它是从客观世界实体的对象关系角度来描述,表现了对象的相互关系。该模型主要关心系统中
对象的结构、属性和操作,它是分析阶段三个模型的核心,是其他两个模型的
框架。
⒈
对象和类
⑴
对象。
⑵ 类。
通过将对象
抽象成类,我们可以使问题抽象化,抽象增强了模型的归纳能力。
⑶ 属性。
属性指的是类中
对象所具有的性质(数据值)。
⑷ 操作和方法。
⒉关联和链
关联是建立类之间关系的一种手段,而链则是建立
对象之间关系的一种手段。
⑴ 关联和链的含义。
⑵ 角色。
角色说明类在关联中的作用,它位于关联的端点。
⑶ 受限关联。
受限关联由两个类及一个限定词组成,限定词是一种特定的属性,用来有效的减少关联的重数,限定词在关联的终端
对象集中说明。
限定提高了语义的精确性,增强了查询能力,在现实世界中,常常出现限定词。
⑷ 关联的多重性。
⒊类的层次结构
⑴ 聚集关系。
聚集是一种“整体-部分”关系。在这种关系中,有整体类和部分类之分。聚集最重要的性质是传递性,也具有逆对称性。
聚集可以有不同层次,可以把不同分类聚集起来得到一颗简单的聚集树,聚集树是一种简单表示,比画很多线来将部分类联系起来简单得多,
对象模型应该容易地反映各级层次。
⑵一般化关系。
一般化关系是在保留
对象差异的同时共享对象相似性的一种高度
抽象方式。它是“一般---具体”的关系。一般化类称为你类,具体类又能称为子类,各子类
继承了父类的性质,而各子类的一些共同性质和操作又归纳到你类中。因此,一般化关系和
继承是同时存在的。一般化关系的符号表示是在类关联的连线上加一个小三角形。
⒋
对象模型
⑴模板。模板是类、关联、一般化结构的逻辑组成。
⑵
对象模型。
动态模型
⒈事件
⒉状态
⒊
状态图
功能模型
功能模型描述了系统的所有计算。功能模型指出发生了什么,
动态模型确定什么时候发生,而
对象模型确定发生的
客体。功能模型表明一个计算如何从输入值得到输出值,它不考虑计算的次序。功能模型由多张
数据流图组成。
数据流图用来表示从源
对象到目标对象的数据值的流向,它不包含控制信息,控制信息在
动态模型中表示,同时数据流图也不表示对象中值的组织,值的组织在对象模型中表示。
⒈处理
⒉数据流
⒊动作
对象
⒋数据存储对象
本文介绍了面向对象编程的基本概念,包括对象、类、继承、多态等,并探讨了面向对象编程在软件开发中的应用。
196

被折叠的 条评论
为什么被折叠?



