类之间的关系

Posted wangke0825

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类之间的关系相关的知识,希望对你有一定的参考价值。

依赖关系

  依赖指的是类之间的调用关系,一个类调用了另一个类的服务(方法)。如果类A在它的方法中调用另一个类B的方法或属性,则类A依赖类B。UML用带箭头的虚线表示依赖

技术图片

public class Driver
{
    public void drive(Car car)
    {
        car.move();
    }
    ……
}
public class Car
{
    public void move()
    {
        ......
    }
    ……
}

 

关联关系

  关联指的是类之间的特定对应关系,在面向对象程序语言角度,关联代表一个类拥有的某个属性对应着另一个类。UML用带箭头的实线表示关联关系

  描述关联关系的三个维度特性:①方向性;②多重性;③聚集性

技术图片

public class Customer
{
    private Address address;
    ……
}
 
public class Address
{
    ……
}

 

 

聚集关系

  聚集是一种特殊的关联关系,特指对象之间存在一种”整体与部分“的包含关系。聚集关系可分为聚合关系和组合关系:

聚合(Aggregate): 普通聚集关系,被聚集的类或子系统允许被拆卸和替换

组合(Composite): 强聚集关系,被聚集的类或子系统不能被拆卸和替换。

  技术图片

public class Head
{
    private Mouth mouth;
    public Head()
    {
    mouth = new Mouth();
    }
    ……
}
 
public class Mouth
{
    ……
}

 

 

 

 

 

 

泛化关系

  泛化关系(Generalization)也就是继承关系,也称为“is-a-kind-of”关系,泛化关系用于描述父类与子类之间的关系,父类又称作基类或超类,子类又称作派生类。在UML中,泛化关系用带空心三角形的直线来表示。

  技术图片

public class Person 
{
    protected String name;
    protected int age;
    public void move() 
    {
        ……
    }
    public void say() 
   {
        ……
    }
}
public class Student extends Person 
{
    private String studentNo;
    public void study() 
    {
        ……
    }
}

 

 

实现关系

  是用来规定接口和实线接口的类或者构建结构的关系,接口是操作的集合,而这些操作就用于规定类或者构建的一种服务。

技术图片

public interface Vehicle 
{
    public void move();
}
public class Ship implements Vehicle
{
    public void move() 
    {
    ……
    }
}
public class Car implements Vehicle
{
    public void move() 
    {
    ……
    }
}

 

参考链接

[1]https://blog.csdn.net/hguisu/article/details/7609483

[2]https://blog.csdn.net/u014470581/article/details/62036457

[3]https://design-patterns.readthedocs.io/zh_CN/latest/read_uml.html

[4]https://www.jianshu.com/p/c92a22babc95

 

以上是关于类之间的关系的主要内容,如果未能解决你的问题,请参考以下文章

类与类之间的关系

JAVA中,类、对象、实体、实体类、实体对象之间存在怎样的联系??请高手做形象的解释。

类之间的关系——宅客

类之间存在的几种常见关系

类之间存在的几种常见关系

java中类与类之间的关系讲解