有两个类X和Y,那么以下描述中,不正确的是( )。

admin2017-08-31  24

问题 有两个类X和Y,那么以下描述中,不正确的是(    )。

选项 A、修改X会引起Y的变化,那么X和Y是一种依赖关系
B、X表示一般,而Y表示特殊,那么X和Y是一种泛化关系
C、X是整体,Y是部分,且X和Y同生命周期,那么它们是组合关系
D、X是整体,Y是部分,且X和Y同生命周期,那么它们是聚合关系

答案D

解析 本题主要考查类与类之间的关系,也是考试中的一个重要知识点。类与类之间的关系,常见的有依赖关系、泛化关系(继承关系)、组合关系、聚合关系、实现关系等。
    (1)依赖关系。
    有两个元素X、Y,如果修改元素X的定义可能会引起对另一个元素Y的定义的修改,则称元素Y依赖(Dependency)于元素X。在LIML中,使用带箭头的虚线表示依赖关系,如图5-4所示。
    在类中,依赖由各种原因引起,例如,一个类向另一个类发消息;一个类是另一个类的数据成员;一个类是另一个类的某个操作参数。如果一个类的接口改变,它发出的任何消息可能不再合法。
    (2)泛化关系。
    泛化关系描述了一般事物与该事物中的特殊种类之间的关系,也就是父类与子类之间的关系。继承关系是泛化关系的反关系,也就是说,子类是从父类继承的,而父类则是子类的泛化。在UML中,使用带空心箭头的实线表示泛化关系,箭头指向父类,如图5.5所示。

    在UML中,对泛化关系有3个要求。
    子类应与父类完全一致,父类所具有的关联、属性和操作,子类都应具有;
    子类中除了有与父类一致的信息外,还包括额外的信息;
    可以使用父类实例的地方,也可以使用子类实例。
    (3)聚合关系。
    聚合(Aggregation)是一种特殊形式的关联,是传递和反对称的。聚合表示类之间的关系是整体与部分的关系。例如,一辆轿车包含4个车轮、一个方向盘、一个发动机和一个底盘,就是聚合的一个例子。在UML中,使用一个带空心菱形的实线表示聚合关系,空心菱形指向的是代表“整体”的类,如图5-6所示。
    (4)组合关系。
    如果聚合关系中表示“部分”的类的存在与否,与表示“整体”的类有着紧密的关系,例如“公司”与“部门”之间的关系,那么就应该使用“组合”关系来表示这种关系。在UML中,使用带有实心菱形的实线表示组合关系,如图5—7所示。

    由于题目指出“类A由类B的一个实例和类C的一个或多个实例构成”,所以类A与类B、类C的关系应为聚合或者组合关系,其示意图如图5-8所示。

    虽然组合和聚合都是表示整体和部分的关系,但组合中整体和部分的生命周期一样,而聚合中整体和部分的生命周期不一样。
    (5)实现关系。
    实现关系将说明和实现联系起来。接口是对行为而非实现的说明,而类中则包含了实现的结构。一个或多个类可以实现一个接口,而每个类分别实现接口中的操作。
    综上所述,可知本题的答案选D。
转载请注明原文地址:https://kaotiyun.com/show/OjRZ777K
0

相关试题推荐
最新回复(0)