龙空技术网

类与类之间的关系(UML图解)

fkjavaer 107

前言:

当前大家对“java接口与类的区别”大约比较珍视,我们都想要学习一些“java接口与类的区别”的相关知识。那么小编同时在网络上汇集了一些有关“java接口与类的区别””的相关文章,希望同学们能喜欢,各位老铁们快快来学习一下吧!

1.概述

海纳百川,有容乃大。世间万物皆有联系,又比如,“随风潜入夜,润物细无声”,描述的是春风、细雨与万物之间的联系。

在Java的世界里,类与类之间又有着怎样的关系呢?

在Java中,类与类之间主要有6种关系,分别是:依赖关联聚合组合继承实现,并且耦合度依次增强。

2.依赖关系

依赖关系在Java中的表现就是:类A的对象使用类B的对象,其中类B的对象作为类A的方法参数、局部变量,或者直接在类A中调用类B的静态方法。

【箭头及指向】:在UML类图中,以虚线箭头表示,箭头指向被依赖的类。

依赖关系

代码示例:

 public class Computer {     // Mouse作为Computer中move方法的形参,建立起依赖关系     public void move(Mouse mouse) {         mouse.move();     } }  public class Mouse {     public void move() {     } }
3.关联关系

关联关系分为单向关联与双向关联,在Java中的表现是:一个类中包含有另一个类。

单向关联:类A中包含有类B。

双向关联:类A中包含有类B,类B中包含有类A。

【箭头及指向】:在UML类图中,以实线箭头表示,箭头指向被关联的类。

关联关系

单向关联示例代码:

 public class Computer {     private SdCard sdCard; }  public class SdCard { }
4.聚合关系

从定义上来看,聚合关系是关联关系的一种,也是一个类中包含有另一个类,但是聚合关系强调的是“整体-个体”之间的相互关系,例如计算机与硬盘之间的关系,计算机作为一个整体,包含有硬盘,但是硬盘可以脱离计算机这个整体而单独存在。

【箭头及指向】:在UML类图中,以带空心菱形的实线表示,菱形指向整体。

聚合关系

代码示例:

 public class Computer {     private Disk disk;      // 聚合关系,通常使用setter方法来维护其成员变量值     public void setDisk(Disk disk) {         this.disk = disk;     } }  public class Disk { }
5.组合关系

从定义上来看,组合关系是关联关系的一种,也是一个类中包含有另一个类,但是组合关系强调的是“整体-部分”之间的共存亡关系,整体与部分具有相同的生命周期,部分不能与脱离整体而单独存在,有种唇亡齿寒的感觉哈。

【箭头及指向】:在UML类图中,以带实心菱形的实线表示,菱形指向整体。

组合关系

代码示例:

 public class Computer {     private Cpu cpu;      // 组合关系,通常使用构造方法来维护其成员变量值     public Computer(Cpu cpu) {         this.cpu = cpu;     } }  public class Cpu { }
6.继承关系

继承关系在Java表示的类与类(接口与接口)之间的父子关系,表示子类在具有父类特性的同时,还具有自己独特的特性。在Java中,用extends关键字表示继承关系。

【箭头及指向】:在UML类图中,以带三角箭头的实线表示,箭头指向父类。

继承关系

示例代码:

 public class Computer { }  // 继承关系 public class PersonalComputer extends Computer{ }
7.实现关系

实现关系在Java中表现的是类与接口之间的关系,接口中定义了抽象的特性,类则是该接口特性的具体实现。

【箭头及指向】:在UML类图中,以带三角箭头的虚线表示,箭头指向接口。

实现关系

示例代码:

 // 实现关系 public class Computer implements Calculate{ }  public interface Calculate { }
8.耦合度

这几种类与类之间的关系,耦合度也是依次增强的:依赖 < 关联 < 聚合 < 组合 < 继承 < 实现

标签: #java接口与类的区别