`
michaeltangbin
  • 浏览: 271800 次
  • 性别: Icon_minigender_1
  • 来自: 黑龙江省
社区版块
存档分类
最新评论

类与类之间存在以下关系

    博客分类:
  • uml
 
阅读更多

类与类之间存在以下关系:

    (1)泛化(Generalization)

    (2)关联(Association)

    (3)依赖(Dependency)

    (4)聚合(Aggregation)

 

 

 

1.泛化(Generalization)

表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系。一般化的关系是从子类指向父类的,与继承或实现的方法相反。

[具体表现]

父类 父类实例=new 子类()

[UML图](图1.1)

图1.1 Animal类与Tiger类,Dog类的泛化关系

[代码表现]

[代码表现]

java 代码
  1. class Animal{}   
  2.   
  3. class Tiger extends Animal{}   
  4.   
  5. public class Test   
  6. {   
  7.     public void test()       
  8.      {   
  9.          Animal a=new Tiger();       
  10.      }   
  11. }   

 

 

 

 

 

2.依赖(Dependency)

对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。

[具体表现]

依赖关系表现在局部变量,方法的参数,以及对静态方法的调用

[现实例子]

比如说你要去拧螺丝,你是不是要借助(也就是依赖)螺丝刀(Screwdriver)来帮助你完成拧螺丝(screw)的工作

[UML表现](图1.2)

图1.2 Person类与Screwdriver类的依赖关系

[代码表现]

java 代码
  1. public class Person{       
  2.     /** 拧螺丝 */      
  3.     public void screw(Screwdriver screwdriver){       
  4.          screwdriver.screw();       
  5.      }       
  6. }     

 

 

 

 

3.关联(Association)

对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。

[具体表现]

关联关系是使用实例变量来实现

[现实例子]

比如客户和订单,每个订单对应特定的客户,每个客户对应一些特定的订单;再例如公司和员工,每个公司对应一些特定的员工,每个员工对应一特定的公司

[UML图] (图1.3)

图1.3 公司和员工的关联关系

[代码表现]

java 代码
  1. public class Company{       
  2.     private Employee employee;       
  3.     public Employee getEmployee(){       
  4.         return employee;       
  5.      }       
  6.     public void setEmployee(Employee employee){       
  7.         this.employee=employee;       
  8.      }       
  9.     //公司运作       
  10.     public void run(){       
  11.          employee.startWorking();       
  12.      }       
  13. }     

 

 

 

 

4.聚合(Aggregation)

当对象A被加入到对象B中,成为对象B的组成部分时,对象B和对象A之间为聚集关系。聚合是关联关系的一种,是较强的关联关系,强调的是整体与部分之间的关系。

[具体表现]

与关联关系一样,聚合关系也是通过实例变量来实现这样关系的。关联关系和聚合关系来语法上是没办法区分的,从语义上才能更好的区分两者的区别。

[关联与聚合的区别]

(1)关联关系所涉及的两个对象是处在同一个层次上的。比如人和自行车就是一种关联关系,而不是聚合关系,因为人不是由自行车组成的。

聚合关系涉及的两个对象处于不平等的层次上,一个代表整体,一个代表部分。比如电脑和它的显示器、键盘、主板以及内存就是聚集关系,因为主板是电脑的组成部分。

(2)对于具有聚集关系(尤其是强聚集关系)的两个对象,整体对象会制约它的组成对象的生命周期。部分类的对象不能单独存在,它的生命周期依赖于整体类的对象的生命周期,当整体消失,部分也就随之消失。比如张三的电脑被偷了,那么电脑的所有组件也不存在了,除非张三事先把一些电脑的组件(比如硬盘和内存)拆了下来。

[UML图](图1.4)

图1.3 电脑和组件的聚合关系

[代码表现]

java 代码
  1. public class Computer{       
  2.     private CPU cpu;       
  3.     public CPU getCPU(){       
  4.         return cpu;       
  5.      }       
  6.     public void setCPU(CPU cpu){       
  7.         this.cpu=cpu;       
  8.      }       
  9.     //开启电脑       
  10.     public void start(){       
  11.         //cpu运作       
  12.          cpu.run();       
  13.      }      

 

分享到:
评论

相关推荐

    Java中类与类之间的关系

    ### Java中类与类之间的关系 #### 泛化(Generalization) 在面向对象编程中,泛化是指一种类从另一种类获取属性和行为的方式。在Java语言中,泛化主要通过继承来实现。继承允许一个类(子类或派生类)继承另一个类...

    java类与类之间的关系

    在Java编程语言中,类与类之间的关系是构建复杂系统结构的基础,这些关系不仅限于继承和封装,还包括了关联、依赖、聚合和组合等多种形式。以下是对这些关系的深入探讨: ### 1. 关联关系(Association) 关联关系...

    基于UML类图的类之间依赖关系图论问题研究.pdf

    - **非反对称性**:即使类A依赖于类B,并且类B依赖于类A,也不意味着两者之间存在等价的依赖关系。 - **非传递性**:如果类A依赖于类B,类B依赖于类C,并不意味着类A一定依赖于类C。 #### 图论在有向依赖图中的...

    Java抽象类和接口和继承之间关系

    Java抽象类和接口是两种不同的概念,它们之间存在着继承关系。在Java中,抽象类(abstract class)和接口(interface)都是用来描述对象的行为和状态的,但它们之间有着明显的区别。 首先,让我们来看一下抽象类。...

    类与类关系

    在面向对象编程的世界里,类与类之间的关系是构建复杂系统的关键。这些关系包括泛化、实现、关联、聚合和依赖。以下是对这些概念的详细解释: 1. 泛化(继承) 泛化,通常表现为继承,是面向对象设计的核心特性之一...

    IT ATA UML认证试题

    2. 两个类之间的关联表示他们之间存在一种不适于继承的逻辑关系。在关联关系的表示图元的两端,可以表示参与关联的()特性。 A、约束 B、可见性 C、角色名 D、多重性 3、(D)是一种不包含操作的实现部分的特殊类。...

    AS3类关系图AIR版

    通过《AS3类关系图AIR版》,你可以进行以下操作: 1. **导入项目代码**:将AS3项目代码导入到工具中,工具会自动分析类定义、接口实现以及类之间的关系。 2. **查看类关系**:生成的类关系图清晰地展示了各个类的...

    类图及其关系 (rose)

    4. **关联关系**:类之间的结构关系,表示类与类之间存在某种联系。例如,“Player”类与“Team”类之间可能存在关联,表示一个球员属于一个球队。关联关系可以有方向(如“Player”指向“Team”)和多重性(如...

    ArcGIS关系类介绍

    - **一个宗地上面可以有多个房屋**:表明宗地和房屋之间存在一对多的关系。 - **一个权利人可以拥有多个房屋**:表示权利人和房屋之间同样存在一对多的关系。 - **一个房屋可以被多个权利人拥有**:这揭示了房屋和...

    AS3.0类关系图.

    5. **类关联和依赖**:除了继承外,类之间还可能存在关联和依赖关系,例如一个类使用另一个类作为成员变量或方法参数。这些关系在图中通常用虚线表示。 6. **核心类和常用类**:AS3.0中有一些核心类,如...

    UML类图与类的关系详解

    ### UML类图与类的关系详解 #### 基本概念 在软件工程领域,统一建模语言(Unified Modeling Language, UML)是一种图形化的标准建模语言,用于描述系统的结构和行为。其中,类图(Class Diagram)是UML中最常见且...

    Qt5类继承关系图

    在Qt5框架中,类的继承关系是构成整个框架的基础,而理解这些类之间的继承关系对于掌握和利用Qt5进行高效编程至关重要。 从提供的【部分内容】来看,包含了一系列的Qt5类和模块,涵盖图形用户界面(GUI)、网络通信、...

    极大相容类

    关系矩阵是一个二元关系的表示方式,其中R[i][j] = 1表示元素A[i]与元素A[j]之间存在关系,R[i][j] = 0则表示不存在关系。 接下来,用户输入π的元素,这通常代表我们关心的特定子集。程序会输出π的内容,但不直接...

    C/C++ 类关系

    关联是一种类之间的连接,表示类对象之间存在某种关系。关联可以进一步细分为双向关联、单向关联和自身关联。 双向关联表示两个类的对象相互引用对方,可以通过对方访问其公共属性和方法。例如,老师和学生之间的...

    qt类继承关系图,qt4

    Qt的类继承关系图是理解整个框架工作原理的关键,它有助于开发者在开发过程中选择正确的类和理解类之间的关系。对于Qt4的继承关系图,了解最新版的继承关系也很重要,因为随着版本的更新,可能会添加新的类,或对...

    C++ 包含类两个类互相调用彼此的类成员变量和方法

    1. 前置声明:在类A中使用类B的成员之前,我们需要告诉编译器类B的存在。这可以通过前置声明来实现: ```cpp class B; //前置声明 class A { B* b_ptr; // A中使用B的指针 }; ``` 2. 循环包含:如果类A包含类B的...

    图书管理系统类和对象的分析

    这些类相互之间可能存在关联和依赖关系,例如图书档案管理类可能与图书借阅类交互,读者档案管理类可能与图书借阅类和过期读者续借类关联。通过这些类的设计和协作,图书管理系统能够有效地管理图书资源,跟踪图书...

    类与类关系的UML图与代码表现

    一:二:三:四:五:类与类之间的关系对于理解面向对象具有很重要的作用,存在以下关系:(1)泛化(Generalization):狗与动物(空箭头)(2)关联(Association):公司与员工有特定的某种关系(实线)(3)依赖(Dependency):...

Global site tag (gtag.js) - Google Analytics