UML 类图中4种关系总结
2013-06-13 09:23
337 查看
下面4种关系总结
1.泛化
2.聚合
3.依赖
4.关联
1.泛化
就是 父类与子类之间的集成关系
[具体表现]
父类父类实例=new子类()
[UML图](图1.1)
图1.1Animal类与Tiger类,Dog类的泛化关系
[代码表现]
[代码表现]
java代码
classAnimal{}
classTigerextendsAnimal{}
publicclassTest
{
publicvoidtest()
{
Animala=newTiger();
}
}
2.聚合关系
就包含、集成,不是继承。
比如张三的电脑被偷了,那么电脑的所有组件也不存在了,除非张三事先把一些电脑的组件(比如硬盘和内存)拆了下来。
[UML图](图1.4)
图1.3电脑和组件的聚合关系
[代码表现]
java代码
publicclassComputer{
privateCPUcpu;
publicCPUgetCPU(){
returncpu;
}
publicvoidsetCPU(CPUcpu){
this.cpu=cpu;
}
//开启电脑
publicvoidstart(){
//cpu运作
cpu.run();
}
3.依赖
就是需要其他对象或是砬
[具体表现]
依赖关系表现在局部变量,方法的参数,以及对静态方法的调用
[现实例子]
比如说你要去拧螺丝,你是不是要借助(也就是依赖)螺丝刀(Screwdriver)来帮助你完成拧螺丝(screw)的工作
[UML表现](图1.2)
图1.2Person类与Screwdriver类的依赖关系
[代码表现]
java代码
publicclassPerson{
/**拧螺丝*/
publicvoidscrew(Screwdriverscrewdriver){
screwdriver.screw();
}
}
4.关联
不属于上面的关系时,两个实体有有一些特定关系,为关联
[具体表现]
关联关系是使用实例变量来实现
[现实例子]
比如客户和订单,每个订单对应特定的客户,每个客户对应一些特定的订单;再例如公司和员工,每个公司对应一些特定的员工,每个员工对应一特定的公司
[UML图](图1.3)
图1.3公司和员工的关联关系
[代码表现]
java代码
publicclassCompany{
privateEmployeeemployee;
publicEmployeegetEmployee(){
returnemployee;
}
publicvoidsetEmployee(Employeeemployee){
this.employee=employee;
}
//公司运作
publicvoidrun(){
employee.startWorking();
}
}
1.泛化
2.聚合
3.依赖
4.关联
1.泛化
就是 父类与子类之间的集成关系
[具体表现]
父类父类实例=new子类()
[UML图](图1.1)
图1.1Animal类与Tiger类,Dog类的泛化关系
[代码表现]
[代码表现]
java代码
classAnimal{}
classTigerextendsAnimal{}
publicclassTest
{
publicvoidtest()
{
Animala=newTiger();
}
}
2.聚合关系
就包含、集成,不是继承。
比如张三的电脑被偷了,那么电脑的所有组件也不存在了,除非张三事先把一些电脑的组件(比如硬盘和内存)拆了下来。
[UML图](图1.4)
图1.3电脑和组件的聚合关系
[代码表现]
java代码
publicclassComputer{
privateCPUcpu;
publicCPUgetCPU(){
returncpu;
}
publicvoidsetCPU(CPUcpu){
this.cpu=cpu;
}
//开启电脑
publicvoidstart(){
//cpu运作
cpu.run();
}
3.依赖
就是需要其他对象或是砬
[具体表现]
依赖关系表现在局部变量,方法的参数,以及对静态方法的调用
[现实例子]
比如说你要去拧螺丝,你是不是要借助(也就是依赖)螺丝刀(Screwdriver)来帮助你完成拧螺丝(screw)的工作
[UML表现](图1.2)
图1.2Person类与Screwdriver类的依赖关系
[代码表现]
java代码
publicclassPerson{
/**拧螺丝*/
publicvoidscrew(Screwdriverscrewdriver){
screwdriver.screw();
}
}
4.关联
不属于上面的关系时,两个实体有有一些特定关系,为关联
[具体表现]
关联关系是使用实例变量来实现
[现实例子]
比如客户和订单,每个订单对应特定的客户,每个客户对应一些特定的订单;再例如公司和员工,每个公司对应一些特定的员工,每个员工对应一特定的公司
[UML图](图1.3)
图1.3公司和员工的关联关系
[代码表现]
java代码
publicclassCompany{
privateEmployeeemployee;
publicEmployeegetEmployee(){
returnemployee;
}
publicvoidsetEmployee(Employeeemployee){
this.employee=employee;
}
//公司运作
publicvoidrun(){
employee.startWorking();
}
}