《软件工程》 第14章

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

面向对象的基本概念
3.关系
关系用于表达相关事物之间的关联
考虑一个家庭,以及家庭内部所有成员之间的关联, 就可以很好的理解关系的概念。 关系表示了事物之间语义上的联系。 比如父亲和孩子之间就有语义上的联系,这就是关系。 关系可以按照语义分很多种,
经常涉及到的就是继承、关联、依赖等。
ZLL
14.1 面向对象基本问题——14.1.1 4.继承
在分析阶段,对象的操作是对象展现给外部的服务。 对象状态的改变是由对对象的操作引起的。 对于民航机场的指挥控制系统,MU9114航班就是该问题域中的对象, 该对象的属性可以包含但不限于:航班号、起飞机场、降落机场、起飞时间、 降落时间,位置等;可能的操作包括离港、到港等。
当对MU9114航班对象进行离港操作时,对象的状态将从停靠状态改变成
软件工程
第14章 面向对象开发方法
14.1 14.2 14.3 14.4 14.5 14.6 14.7 面向对象基本问题 面向对象开发方法和过程 业务建模 需求 分析 设计 实现
14.1 面向对象基本问题——14.1.1 1对象
面向对象的基本概念
是现实世界事物或个体的抽象表示,抽象的结果不仅包 括事物个体的属性,还包括事物的操作。 对象属性值表示了对象的内部状态, 操作表示了对象可以完成的职责。
ZLL
14.1 面向对象基本问题——14.1.1 7.多态
面向对象的基本概念
多态并没有统一规范的定义,可以 从生物学的角度来理解这个概念。
Zoo Start() 比如所有动物都有一个能运动的特性,也就是说运动是动物的固有
属性,可是动物究竟怎么运动却无法准确的描述出来。 由于生物进化过程存在多样性,所以会有鸟、鱼、蛇,老虎等等, Animal 这种多样性就导致了不同动物的运动方式是不一样的,比如鱼是 for(i=0;i<Ancount;i++) Move() 游动,蛇是爬行等等。多态就是来解决这样的问题的。动物是多样 { 的,当让动物移动的时候,如果这个动物是蛇,那这个移动就是爬 Animal 行,而如果这个动物是鱼,他就会游动。 an=GetAnimal(i); an.Move(); 可以通过图14-1简单的理解多态的概念。 Bird Fish Tiger Snake
飞行状态。对于学生管理系统,06-2班也是一个问题域内的对象, 其属性包括班级成员、班长、固定教室等,其操作可包括分配教室等等。
ZLL
14.1 面向对象基本问题——14.1.1
面向对象的基本概念
2Hale Waihona Puke Baidu类
类是对具有共同特征的对象的进一步抽象。 类通常被认为是对象的模板,通过该模板可以创建特性 一致的对象。 使用类创建对象的过程实际上是类的实例化过程。
民航机场的指挥控制系统中,从众多的航班对象可抽象出一个航班类, 通过这个类,反过来可以实例化很多的对象:MU9114、MU9115等等。 而在学生管理系统中,通过对04-2、05-1等对象的抽象,形成班级类。 一旦有了班级类,又可以实例化出更多班级,如07-1、08-2等等。
ZLL
14.1 面向对象基本问题——14.1.1
ZLL
14.1 面向对象基本问题——14.1.1
面向对象的基本概念
5.聚合
聚合关系是关联关系的一种, 它模拟了现实世界的部分与整体的关系。
聚合关系允许利用现有的类组成新类 比如说汽车,它是由发动机、变速箱、底盘等组成, 那么我们就可以利用发动机、变速箱、底盘等类聚合成一个 新的类:汽车。 因为聚合是部分与整体的关系,因此, 不能像继承关系那样说汽车是发动机,正确的说法应该是: 发动机是汽车的组成部分。
面向对象的基本概念
继承关系模拟了现实世界的 一般与特殊的关系
它允许我们在已有的类的特性基础上构造新类。 被继承的类我们称之为基类(父类), 在基类的基础上新建立的类我们称之为派生类(子类)。 派生类的特性比基类的特性更细致。 比如以生物类作为基类,派生出动物类,动物类具备生物类的全部 特性(生长,新陈代谢等),但同时他必须是能活动的生物。 继承关系可以表述为:派生类是基类。 因此可以说:动物是生物。生物比动物具有更一般的特性。
ZLL
14.1 面向对象基本问题——14.1.1
面向对象的基本概念
6.消息
消息是对象之间交互的唯一途径,一个对象要想使用 其他对象的服务,必须向该对象发送服务请求消息。 而接收服务请求的对象必须对请求做出响应。
当我们向银行系统的帐号对象发送取款消息时, 帐号对象将根据消息中携带的取款金额对客户的帐号 进行取款操作: 验证帐号余额,如果帐号余额足够,并且操作成功, 对象将把执行成功的消息返回给服务请求的发送对象, 否则发送交易失败消息。
}
ZLL
14.1.2 面向对象的编程
面向对象编程用以实现面向对象的基本概念,比如类、对 象、继承、多态等概念。面向对象的语言和面向对象的编 程是不同的,面向对象语言在语言级别上直接支持面向对 象的概念,如JAVA语言和C++语言中的关键字class是对 类这个概念的直接支持。面向对象的编程是一种编程思想, 可以用面向对象的语言来实现,当然也可以不用面向对象 的语言来实现。比如用C语言的结构和函数指针也可以实 现类的概念。
通常情况下,面向对象的编程是指用面向对象语言来实现 面向对象的分析和设计概念,这些概念如类、继承、多态 等等。面向对象的语言必须直接支持如下概念:对象封装; 类和实例;继承;多态。
ZLL
14.1.2 面向对象的编程
1.类、对象 面向对象语言首要支持的概念就是对象,对象不仅包含属 性还包括操作,软件系统中,对象不是孤立存在的,每个 对象都要与其他对象进行交互,每个对象都会有定义良好 的接口为其他对象提供服务。 比如车老师这个对象,他有教龄属性,有学历属性,他要 教课,当然也要学习。教课就是车老师提供的服务,教学 这个服务由学院来启动,启动的时候还要传进来一些参数, 比如教什么课,教哪个班级,课表等。一旦车老师开始教 04级的《软件项目管理》这门课程,他同04级所有的学生 又有交互,比如提问,批作业等等。 在面向对象的程序中,对象的属性通过变量来实现,对象 的操作通过方法(或函数)来实现。
相关文档
最新文档