类和类之间的关系(2)

简介: 类和类之间的关系(2)

局部变量代码如下,一般指方法里面的局部变量

1. class B {}
2. class A {
3. public A() {}
4. public void method() {
5.         B b = new B();
6.     }
7. }


静态方法的调用代码如下

1. class B {
2. public static void staticMethod() {}
3. }
4. class A {
5. public A() {}
6. public void method() {
7.         B.staticMethod();
8.     }
9. }


返回值代码如下

class B {}
class A {
    public A() {}
    public B method() {
        return null;
    }
}


5、聚合(Aggregation)

整体与部分的关系,表示聚合在一起,部分可以离开整体而单独存在,车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。

聚合关系是关联关系的一种,是强的关联关系,关联和聚合在语法一样,须考察具体的逻辑关系。

箭头及指向:带空心菱形的实心线,菱形指向整体

20170724223902569.png

代码实现和上面的关联是一样的。


6、组合(Composition)

是整体与部分的关系,但部分不能离开整体而单独存,比如人的肺和人体,肺不能离开人单独存在,有人肺在人体才能存活

箭头指向:带实心菱形的实线,菱形指向整体

组合关系是关联关系的一种,是比聚合关系还要强的关系

类图如下

20170724223902569.png

代码实现和上面的关联是一样的。


二、依赖和关联之间的区别

关联是“HAS”关系,依赖是“USE”关系

A类关联B类,指的是B类对象作为A类的属性存在,称为“has”关系。

A类依赖B类,指的是B的对象作为A类的方法形式参数存在,称为“use”关系。一般也包括函数参数、局部变量、返回值类型和静态方法调用这四种场景。

生命周期不同

如果A类关联B类,那么创建A类的对象时实例化B类的对象,直到A类对象被销毁,所关联的B类对象也被销毁。即只要A类对象存在,B类对象就存在。

如果A类依赖B类,那么只有当A类对象调用到相应方法时,B类对象才被临时创建,方法执行结束,B类对象即被回收,A类和B类之间的依赖关系是一种瞬时的关系。


三、关联和组合和聚合之间的关系

组合和聚合都是关联关系的一种,只不够 组合 > 聚合 > 关联


四、各种关系的强弱顺序

依赖 < 关联 < 聚合 < 组合 <  实现 = 泛化(继承)





相关文章
|
6月前
|
开发框架 .NET C#
浅谈c和c++和c#之间的关系
浅谈c和c++和c#之间的关系
79 0
|
存储 JavaScript
02-TsVSJs之间的区别
02-TsVSJs之间的区别
61 0
|
Java
类之间的比较
类之间的比较
64 0
|
人工智能 数据建模 计算机视觉
矩阵和数据之间的关系 | 学习笔记
快速学习矩阵和数据之间的关系
443 0
矩阵和数据之间的关系 | 学习笔记
|
容器
getChildFragmentManager和getsupportFragmentManager和getFragmentManager的关系
getChildFragmentManager和getsupportFragmentManager和getFragmentManager的关系
|
存储
对象之间的耦合性
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qingfeng812/article/details/8962836   数据耦合 数据耦合指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言的值传递. 一个模块访问另一个模块时,彼此之间是通过简单数据参数 (不是控制参数、公共数据结构或外部变量) 来交换输入、输出信息的。
1253 0
类之间的关系共为6种关系
类之间的关系共为6种关系
571 0
|
uml
类和类之间的关系(1)
类和类之间的关系(1)
117 0
类和类之间的关系(1)
|
uml
UML图中类之间的关系
类图中的关系大致一下几种 l 泛化 l 关联 l 依赖 l 组合 l 聚合  泛化 泛化是子集和超集的关系,常使用继承和实现来表示; 继承:子类到超类的实线和空心三角箭头表示 实现:子类到超类的虚线和空心三角箭头表示  依赖 依赖常常表示 一方(客户)知道另一方(提供者)并且另一方(提供者)有所改变时会对一方(客户)产生影响。
858 0