【软考软件评测师】第九章节 软件工程之面向对象
第九章节 软件工程之面向对象
第一部分 知识点集锦
1.对象与类的概念
- 对象是基本运行时的实体,既包括数据(属性),也包括(行为)
- 类所包含的方法和数据描述一组对象的共同行为和属性;类是在对象之上的抽象,对象是类的具体化,是类的实例
- 类图主要是对系统的词汇建模,或者对简单的协作建模,或者对逻辑数据库模式建模,而用例图对系统的需求建模。 类图中,类和类之间的关系有依赖关系、关联关系、聚集关系、组合关系和泛化关系
- 在面向对象技术中,对象是基本的运行时实体,它既包括数据(属性),也包括作用于数据的操作(行为)。一个对象把属性和行为封装为一个整体。对象的属性表示了对象特有的与其他对象相互区分的特性。
- 一个对象A要改变另一个对象B的状态,要通过B的修改操作符进行;如果需要读取B的状态信息,则通过B的选择操作符,并可获取B对象的属性值。创建B对象的类的一个新的对象,并不对B进行任何操作。
2.对象之间的关系
1)依赖关系
- 是两个事物间的语义关系,其中一个事物(独立事物)发生变化会影响另一个事物的语义。
- 也是类之间的一种静态关系,表现为一个类是另外一个类的局部变量。
- 在UML中,依赖关系用带箭头的虚线表示,由依赖的一方指向被依赖的一方。
- 依赖表示类之间的是一种“临时、短暂”关系,这种关系是不需要保存的。
2)关联关系
- 是一种结构关系,描述了一组链,链是对象之间的链接。
- 关联表示类之间的“持久”关系,这种关系一般表示一种重要的业务之间的关系,需要保存的,或者说需要“持久化”的,或者说需要保存到数据库中的。
聚合关系
- 是一种特殊的类型关联,描述了整体和部分间的结构关系。部分独立于整体。
- 聚合关系是整体与部分之间的关系,是强的关联关系。
- 聚合关系用带空心菱形的实心线,菱形指向整体
- 聚合关系表示客观事物之间的整体和部分的关系,如汽车和发动机时关系。
组合关系
- 是聚合的一种特殊形式,暗示局部在整体内部的生存职责。部分依赖于整体。
- 组合关系是一种更强的聚合关系,一个部分类的对象在一个时刻必须仅属于一个整体类的对象,且整体类的对象管理它的部分类的对象。整体类不存在了,部分类也就不复存在。
- 它要求普通的聚合关系中代表的对象负责代表部分的对象的生命周期,组成关系是不能共享的。
- 组合也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;它同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束;比如你和你的大脑
3)泛化关系
- 在面向对象中我们称之为继承。
- 是一种特殊/一般关系,特殊元素(子元素)的对象可替代一般元素(父元素)的对象。
- 父类和子类之间共享数据和方法的机制
- 在面向对象中没有规定一个子类只能有一个父类,不同的程序设计语言有不同的规定,有些只能有一个(如java),有些可有多个(如C++)
4)实现关系
是类元之间的语义关系,其中的一个类元指定了由另一个类元保证执行的契约。
3.设计模式
是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。
设计模式分为三种类型,共23种。
1)创建型模式
单例模式、抽象工厂模式、建造者(构建)模式、工厂模式、原型模式。
2)结构型模式
适配器模式、桥接模式、装饰(器)模式、组合模式、外观模式、享元模式、代理模式。
3)行为型模式
模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式(Interpreter模式)、状态模式、策略模式、职责链模式(责任链模式)、访问者模式。
4.面向对象机制
- 在面向对象技术中,继承是父类和子类之间共享数据和操作的机制。
- 多态是不同的对象收到相同的消息产生不同的结果的一种现象。
- 消息传递是对象之间进行通信的方式。关联是类和类之间的一种关系。
- 绑定是一个把过程调用和响应调用所需要执行的代码加以结合的过程。在一般的程序设计语言中,绑定是指编译时进行的,称为静态绑定,而在运行时进行的绑定称为动态绑定。
- 链:表示实例对象间的物理或概念上的连接。关联描述具有公共结构和公共语义的一组链。
第二部分 综合知识历年真题
2020下综合知识历年真题(4分)
【2020年评测真题第40题:红色】
40.以下关于面向对象基本概念的叙述中,不正确的是( )。
A.类是一组具有相同属性相同操作的一组对象的集合
B.继承是子类自动的拥有父类的全部或者部分的属性,或操作的机制
C.一个子类只能有一个父类
D.对象是类的实例
解答:答案选择C。
【2020年评测真题第41题:绿色】
41.面向对象分析与设计的模型中,( )不是行为模型。
A.类图
B.活动图
C.序列图
D.状态图
解答:答案选择A。
【2020年评测真题第42题:绿色】
42.面向对象设计的类图模型中,若设计了类“交通工具”“汽车”“发动机”,在“交通工具”和“汽车"之间是( )关系,“汽车”和“发动机”之间是( )关系。
A.继承
B.关联
C.组合
D.依赖
解答:答案选择A|C。
2017下综合知识历年真题(5分)
【2017年评测真题第22题:绿色】
22.行为型设计模式描述类或对象如何交互和如何分配职责。( )模式是行为型设计模式。
A.装饰器(Decorator)
B.构建器(Builder)
C.组合(Composite)
D.解释器(Interpreter)
解答:答案选择D。送分题。
【2017年评测真题第36题:绿色】
36.下图是( )设计模式的类图,该设计模式的目的是( ),图中,Abstraction和RefinedAbstraciton之间是(/)关系,Abstraction和Implementor之间是(/)关系。
A.适配器
B.桥接
C.装饰
D.代理
》
A.将一个类的接口转换为客户期望的另一种接口,使得原本不匹配的接口而无法合作的类可以一起工作
B.将一个抽象与其实现分离开,以便两者能够各自独立地演变
C.动态地给一个对象附加额外的职责,不必通过子类就能灵活地增加功能
D.为一个对象提供代理以控制该对象的访问
》
A.依赖
B.关联
C.继承
D.聚合
》
A.依赖
B.关联
C.继承
D.聚合
解答:答案选择B|B|C|D
2016下综合知识历年真题(1分)
【2016年评测真题第34题:绿色】
34.用面向对象方法设计了一个父类File和两个子类DiskFile和TapeFile,这两个子类继承了其父类的open方法,并给出不同的实现。不同的子类执行open方法时,有不同的行为,这种机制称为( )。
A.继承
B.多态
C.消息传递
D.关联
解答:答案选择B。送分题。
2015下综合知识历年真题(4分)
【2015年评测真题第35题:绿色】
35.在面向对象分析和设计中,用类图给出的静态设计视图,其应用场合不包括( )。下图是一个UML类图,其中类University和类School之间是( )关系,类Person和类PersonRecord之间是( )关系,表示Person与PersonRecord( )。
A.对系统的词汇建模
B.对简单的协作建模
C.对逻辑数据库模式建模
D.对系统的需求建模
》
A.依赖
B.关联
C.聚集
D.泛化
》
A.之间的语义关系,其中PersonRecord发生变化会影响Person的语义
B.之间的一种结构关系,描述了一组链,即对象之间的连接
C.是整体和部分的关系
D.是一般和特殊的关系
解答:答案选择D|C|A|A。
2013下综合知识历年真题(4分)
【2013年评测真题第29题:绿色】
29.在面向对象技术中,( )是一组具有相同结构、相同服务、共同关系和共同语义的( )集合,其定义包括名称、属性和操作。
A.类
B.对象
C.实例
D.属性
解答:答案选择A|B。
【2013年评测真题第30题:绿色】
30.下图中,类 Product 和 ConcreteProduct 的关系是( ),类 ConcreteCreator 和 ConcreteProduct 的关系是( )。
A.继承
B.关联
C.组合
D.依赖
解答:答案选择A|D。
2012下综合知识历年真题(4分)
【2012年评测真题第18题:绿色】
18.在面向对象系统中,对象的属性是( )。
A.对象的行为特性
B.和其他对象相关联的方式
C.和其他对象相互区分的特性
D.与其他对象交互的方式
解答:答案选择C。
【2012年评测真题第19题:绿色】
19.对象是面向对象系统的最基本的元素,一个运行期系统就是对象之间的协作。一个对象通过( )改变另一个对象的状态。
A.另一个对象的修改操作符
B.另一个对象的选择操作符
C.获得那个对象的属性值
D.创建那个对象的对象类的一个新的对象
解答:答案选择A。
【2012年评测真题第35题:红色】
35.以下类图中,类Class1和Class2之间是( )关系。
A.关联
B.聚合
C.组合
D.继承
解答:答案选择C。BC二选一错。
【2012年评测真题第36题:绿色】
36.面向对象技术中,类之间共享属性与行为的机制称为( )。
A.继承
B.多态
C.动态绑定
D.静态绑定
解答:答案选择A。
2011下综合知识历年真题(1分)
【2011年评测真题第38题:红色】
38.在UML类图中,包含订单和订单明细两个类,则这两个类之间的关系应为( )。
A.关联
B.聚合
C.组装
D.继承
解答:答案选择C。
面向对象编程详解:类与对象、关系及设计模式
本文详细介绍了面向对象编程中的核心概念,包括对象与类的区别,对象之间的依赖、关联、聚合、组合和泛化关系,以及设计模式的分类。同时,提供了历年软考软件评测师综合知识真题,帮助考生深入理解和掌握面向对象技术。




2354

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



