码迷,mamicode.com
首页 > 其他好文 > 详细

类与类之间的关系--泛化,关联,依赖,实现

时间:2014-10-26 15:40:06      阅读:291      评论:0      收藏:0      [点我收藏+]

标签:软考   uml   类之间的关系   

         类,对象是面向对象的基础,类与类之间的关系是面向对象不可或缺的一部分。下面将从类的关系定义,UML中的符号表示,代码实现三方面介绍类与类之间的关系。
        1、泛化(Generalization):也成为继承关系。指一个类(子类或者子接口)继承另外一个类(父类或者父接口)的功能。并可以增加自己的功能。在程序程序中用关键字xtends明确标识,在UML设计中用空三角和实线表示,从子类指向父类,或者子接口指向父接口。

如图             bubuko.com,布布扣

代码:

public class Cat {

	public Cat(){

	}
	

	public void Eat(){

	}

	public void Run(){

	}

	public void Walk(){

	}

}
子类示例
public class WhiteCat extends Cat {

	public WhiteCat(){

	}
	
	public void Eat(){

	}

	public void Run(){

	}

	public void Walk(){

	}

}

         2、实现(Realize) 是指 一个class 实现interface接口的功能,用关键字implements标识,在UML设计中用一条带空心箭头的虚线表示,箭头指向接口。

如图                bubuko.com,布布扣

代码:

public interface Iaction {

	public void drink();

	public void eat();

}
public class dog implements Iaction {

	public dog(){

	}

	public void finalize() throws Throwable {

	}

	public void drink(){

	}

	public void eat(){

	}

}

       3、依赖(Dependency)是指一个类A使用到了另一个类B,而这种使用关系是具有偶然性、临时性。但是类B的变化会影响到类A。表现在代码层面,为类B作为参数被类A在某个方法中使用。在UML类图设计中用由类A指向类B的带箭头虚线表示。

 如图                     bubuko.com,布布扣

        4、关联关系  关联体现的是两个类之间语义级别的一种强依赖关系,比如我和我的朋友,这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方关系一般是平等的。关联可以单向的也可以是双向的。表现在代码层面,为被关联类B以类的属性形式出现在关联类A中,也可能是关联类A引用了一个类型为关联类B的全局变量。在UML类图设计中,关联关系用有关联类A指向被关联类B的带箭头实线表示,在关联的两端可以标注关联双方的角色和多重性标记。

如图                         bubuko.com,布布扣

        5、聚合关系(Aggregate)是关联关系的一种,表示整体与部分的关系是has- a的关系。整体和部分是可分离的他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享。比如汽车和轮胎。表现在代码层和关联关系是一致的,只能从语义级别区分。在UML类图设计中,聚合关系以空心菱形加实线箭头表示。

如图                           bubuko.com,布布扣


       6、组合(Compose)也是关联关系的一种特例,它体现的是一中is-a 的关系,这种关系比聚合更强,它所表示的整体与部分的关系是不可分的。整体的生命周期结束部分的生命周期也结束。如人和人的大脑。在UML设计中用实心的菱形和实现箭头表示。

 如图                           bubuko.com,布布扣


        上述的六种关系很简单,在应用中容易混淆的就是箭头所指的方向,其中泛化和实现指向抽象类。依赖和关联指向属性类或者子类。此类总结网上很多,为了学习最好自己实际动手画画。会有精彩等着你。

类与类之间的关系--泛化,关联,依赖,实现

标签:软考   uml   类之间的关系   

原文地址:http://blog.csdn.net/lxy344x/article/details/40475251

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!