关联
关联(association)关系: 表示类与类之间的联接, 它使一个类知道另一个类的属性和方法. 一个学生选学一门课程可用学生类选修课程类来描述,即关联描述
关联可以使用单箭头表示单向关联, 使用双箭头或不使用箭头表示双向关联. 关联有两个端点, 在每个端点可以有一个基数, 表示这个关联的类可以有几个实例
常见的基数及含义:
0..1:0 或1 个实例.
0..*: 对实例的数目没有限制.
1: 只能有一个实例.
1..*: 至少有一个实例.
在UML图中表示为:
代码实现:
Public class A
{
PublicB b;
PublicA()
{
}
}
Public class B
{
PublicB()
{
}
}
关联关系还可以细化分为组合跟聚合关系:
聚合是关联的一种特殊形式,它意味着一种整体/部分(whole/part)的关系。一个整体不能是它自己的一部分。聚合强调这种部分与整体的关系不较弱,只是强调存在这么一种部分与整体的关系。
Uml图的画法为:
代码实现:
Public class A{
Public B b;
Public A(B b)
{
This.b=b;
}
}
Public class B
{
Public B()
{
}
}
组合是一种特殊的聚合形式,它强调部分与整体的生命周期的一致性,一旦整体不存在部分也就随之消亡,犹如窗体跟菜单之间的关系一样,菜单随窗体的产生而产生随窗体的消亡而消亡。
UML图的画法为:
代码实现:
Public class A{
Public B b;
Public A()
{
b=new B();
}
}
Public class B
{
Public B()
{
}
}
泛化
泛化关系可以形容成一个类继承另一个类还可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系。在面向对象程序编程中继承 ······继承可以说极大地方便了面向对象编程,实现了程序的复用也体现出了对象的多态性。
泛化关系在UML中用箭头为空三角形来表示,箭头指向被继承者。
UML画法:
代码实现:
Public class A
{
Public A()
{}
}
Public classB extends A{
Public B()
{}
}
依赖
依赖关系也是类与类之间的连接表示一个类依赖于另一个类,依赖关系总是单向的,它是四种关系中表示连接性最弱的关系,具有偶然性的、临时性的。在程序实现中呈现为一个类的方法中的调用另一个类的某些方法。
UML图:
代码实现
Public class A{
Public A()
{}
}
Public class B{
Public B()
{}
Public void C(A a)
{
}
}
实现
实现(realization)关系指的是一个class类实现interface接口(可以是多个)的功能;实现是类与接口之间最常见的关系,通常表现为类对接口的具体实现,从而实现多重继承。
UML画法:
代码实现:
Interface A{
}
Public class B implements A
{
Public B(){}
}