类图练习题 下载本文

专题三:类图(对象图、包图)

一、单项选择题

1.UML中类的有三种,下面哪个不是其中之一() A.实体类 B.边界类 C.控制类 D.主类 2.在UML中,类之间的关系有一种为关联关系,其中多重性用来描述类之间的对应关系,下面哪个不是其中之一() A. 0….1 B. 0….* C. 1….* D. *….*

3.通常对象有很多属性,但对于外部对象来说某些属性应该不能被直接访问,下面哪个不是UML中的类成员访问限定性() A.公有的(public)

B.受保护的(protected) C.友员(friendly) D.私有的(private) 4、在一个课程注册系统中,定义了类CourseSchedule和类Course,并在类CourseSchedule中定义了方法add(c:Course)和方法remove(c:Course),则类CourseSchedule和类Course之间的关系是:( )

A、泛化关系 B、组成关系C、依赖关系 D、包含关系

5、类A的一个操作调用类B的一个操作,且这两个类之间不存在其他关系,那么类A和类B之间是()关系。( )

A、 实现B、关联C、依赖 D、泛化 6、在UML2.0版本中的图形表示方式中,“包”的表示方式是下列图形中的哪一个 ?( )

组件1A、B、C、 D、7、在UML中下列图形代表什么关系?( )

A、组成关系B、依赖关系 C、聚集关系D、泛化关系 8、在UML中下列图形代表什么关系?( )

9、汽车(Car)由轮子、发动机、油箱、座椅、方向盘等组成。那么car类和其他类(Wheel、Engin、Tank、Chair、SteeringWheel)之间的关系是:() A、泛化关系(Generalization) B、实现关系(Realization) C、包含关系(Inclusion) D、组合关系(Composition) 10.在下面的图例中,哪个用来描述注释()

A B C D

11.关于包的描述,哪个不正确()

A.和其他建模元素一样,每个包必须有一个区别于其他包的名字; B.包中可以包含其他元素,比如类、接口、组件、用例等等; C.包的可见性分为:public、protected、private;

D.引入(import)使得一个包中的元素可以单向访问另一个包中的元素; E.导出(export)使的一个包中的元素可以单向访问另一个包中的元素;

12、消息传递是对象间通信的手段,一个对象通过向另一个对象发送消息来请求其服务,一个消息通常包括:( )

A、发送消息的对象的标识、调用的发送方的操作名和必要的参数 B、发送消息的类名和接收消息的类名

C、接收消息的对象的标识、调用的接收方的操作名和必要的参数 D、接收消息的类名

13、在一个网络游戏系统中,定义了类Cowboy和类Castle,并在类Cowboy中定义了方法open(c:Castle)和方法Close(c:Castle),则类Cowboy和类Castle之间的关系是:??( )

A、依赖(dependency)关系 B、组成(composition)关系 C、泛化(generalization)关系 D、包含(include)关系 14、根据下面的代码,判断下面那些叙述是正确的?()

public class HouseKeeper{

privateTimeCardtimecard; public void clockIn(){ timecard.punch(); } }

A、类HouseKeeper和类TimeCard之间存在关联(Association)关系; B、类HouseKeeper和类TimeCard之间存在泛化(Generalization)关系; C、类HouseKeeper和类TimeCard之间存在实现(Realization)关系; D、类HouseKeeper和类TimeCard之间存在包含(Inclusion)关系

15、UML关系包括关联、聚合、泛化、实现、依赖等5种类型,请将合适的关系填写在下

列描述的()中。

①用例及其协作之间是()关系。

②类A的一个操作调用类B的一个操作,且这两个类之间不存在其他关系,那么类A和类B之间是()关系。

③在学校中,一个学生可以选修多门课程,一门课程可以由多个学生选修,那么学生和课程之间是()关系。

④森林和树木之间是()关系。关系。

⑤在MFC类库中,Window类和DialogBox类之间是()

A 实现 B 关联 C 依赖 D 泛化 E 聚合

16、已知类A需要类B提供的服务,下列所描述的四种情况中,哪种情况不好把类A和类

B之间的关系定义成依赖关系()

A、类A中存在两个操作都需要访问类B的同一个对象

B、类A的某个操作内部创建了类B的对象,而其他操作均与类B无关 C、类A的某个操作其参数是类B的对象,而其他操作均与类B无关 D、类B是一个全局变量 17、“一个研究生在软件学院做助教(teaching assistant),同时还在校园餐厅打工做收银员(cashier)。也就是说,这个研究生有3种角色:学生、助教、收银员,但在同一时刻只能有一种角色。”

根据上面的陈述,下面哪个设计是最合理的?()

PersonPerson<<接口>>PersonRole0..1StudentTeachingAssistantCashierStudentTeachingAssistantCashier

A B

Student<<接口>>Cashier<<接口>>TeachingAssistant<<接口>>StudentTeachingAssistantCashierPersonPerson

CD

18、类X与类Y有许多的属性,但是它的行为与类Y稍微有所不同;这时可以认为类X是

类Y的一种特例;则类X和类Y之间是()关系。 A 、泛化关系 B、关联关系C、依赖关系 D、实现关系 19、关于类和对象的关系,下列说法中哪个是错误的()

A、每个对象都是某个类的实例

B、每个类某一时刻必定存在对象实体 C、类是静态的描述 D、对象是动态的实例

二、填空题

1.下图中类的名字是:____________类中的成员属性是:_________ 类中的行为(方法)是:___________________。

2、在UML中分组元素是。

3、在UML模型图中,最适合用来设计数据库大纲的图形是 。 4、在对系统建模时、接口可分为、。

5、下图所表示的含义是WashingMachine了接口ControlKnob,Person了接口ControlKnob

三、简答题

1、在UML建模中使用“包”是为了达到怎样的效果?

2、下图显示了某个学校课程管理系统的部分类图,其中一个学生(student)可以知道所有注册课程的教师(instructor),一个教师也可以知道所有注册课程的学生。

现在提出一个新的需求:\一个教师也可以是某些课程的学生\,那么下面设计A~C中哪一个是最好的?为什么? 设计A:

设计B:

. 设计C:

答案:设计___最好。 理由:

3、 请为下面这段编译正确的代码,补充类图。 pulic class Student{ private String name;

public void setName(String name){ this.name=name; }

public String getName(){ return this.name; } }

4、 请参考下图,回答问题:

图A.2

1) 图中的实体类为_____________________ 2) 图中的控制类为______________________ 3) 图中的边界类为_____________________

4) “借书界面”类中的成员属性有____________________

四、根据下面的陈述画出类图

1)学生包括本科生、研究生两种。

2)研究生的一部分利用课余时间担任助教。 3)教师包括讲师和教授两种。

4)一名助教可以为一位讲师或一位教授助课,一位讲师只能有一名助教,一位教授可以有5名助教。

五、按如下描述画出一个自治机器人的类图。这张图的焦点是聚集在那些让机器人在路上行走的机制所对应的类上。你可以发现一个虚类Motor和两个从它派生出来的类:SteeringMotor和MainMotor。这两个类都从它的父亲Motor继承了五个方法:move()、stop()、resetCounter()、statues()、distance()。这两个类又是另一个类Driver的一部分。类PathAgent和Driver有一个1对1的关系,和CollisionSensor有1对n的关系。 【问题:】综上所述请你用UML来绘制分析类图 。

六、请根据以上题目描述,给出系统的UML类图设计方案,并用Java代码予以实现。

系统名称:农夫果园游戏系统

人物角色:农夫(Farmer)、市场调查员(Inquirer)、农场主(Boss) 系统实物:各种果树(Fruit)、果园(Garden)

功能需求:1、农夫可以根据市场行情种植各种水果;

2、市场调查员可以了解市场行情; 3、农场主可以向农夫、市场调查员发布命令

4、各种果树都具有种植(plant)、成长(grow)、收获(harvest)行为; 5、果园是人物和实物进行交易的经营场所。