java 类与类之间的关系 及uml图

Python06

java 类与类之间的关系 及uml图,第1张

1.关联

关联即对象与对象之间的连接。java类之间的关联是一个类的作为另一个的属性被定义,即“has-a”的关系。关联又分为组合与聚合两种。示例如下:

//两个类之间的聚合public class Car{}public class Person{

private Car car

}//两个类之间的组合public class Car{}public class Person{

private Car car=new Car()//创建一个Car对象}123456789101112

关联又分为单向关联与双向关联,以上代码为单向关联(Person类关联Car类),双向关联(Person类关联Car类,同时Car类关联Person类)代码如下:

public class Car{

private Person per

}public class Person{

private Car car

}123456

类之间的关联,可以一对一的关联,也可以一对多的关联。

2.依赖

依赖的具体表现是将一个类的对象当做方法参数传给另一个类的方法,是一种use-a的关系。如:

public class Person{

public void dirve(Car car){

}

}1234

关联与依赖的区别在于:关联是has-a的关系,依赖是use-a的关系而且关联中Person关联Car,只要Person类对象存在,Car对象就存在依赖中只有Person类对象调用到dirve()方法时,Car对象才会被创建,方法执行结束后,Car对象就被收回。

3.继承

类与类的另一个关系是继承。继承是一个类的定义基于另一个存在的类,即子类基于父类,如此可实现代码的重用,子类能够继承父类可访问的方法、属性,并能扩展新的能力,而且子类可重写父类方法以满足子类需要。在继承中子类可调用父类的构造方法,子类构造方法总是先调用父类的构造方法,而且默认情况下调用父类的无参构造方法,在子类构造方法的第一行使用super关键字即可调用父类构造方法。示例代码如下:

public class Point {

private double x private double y public double getX() {return x

}public void setX(double x) {this.x = x

}public double getY() {return y

}public void setY(double y) {this.y = y

} //无参构造方法

public Point() {

} //有参构造方法

public Point(double x, double y) {this.x = x this.y = y

} //draw()方法

public void draw(){

}

}public class Circle extends Point {

private double r public double getR() {return r

}public void setR(double r) {this.r = r

} //有参构造方法

public Circle(double x, double y) {super(x, y)

}public void draw() {

System.out.println("半径为:" + this.r + " x坐标为:" + getX() + " y坐标为:" + getY() + "的圆绘制成功!")

}

}public class Test {

public static void main(String[] args) {

Circle circle = new Circle(2, 3)

circle.setR(3)

circle.draw()

}

}

UML不属于Java。它是一门语言:统一建模语言(Unified Modeling Language)。它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。

在Java的项目开发中,当然也经常用到UML。如用UML来体现代码的流程,类的设计结构。我在秒秒学Java课程中就看到它灵活的运用了UML图来讲解课程的代码。

推荐使用ModelGoon!

*ModelGoon是什么?

它是一个Eclipse插件,用于基于UML图的模型设计,以及逆向工程(即从已有源代码生成类图等,以作为代码分析或者文档使用)。

*适用条件

ModelGoon目前最新的版本是3.0.0,适用于Eclipse3.4+,包括最新的Eclipse 3.6版本

*如何安装

推荐在线安装,site地址是h

需要注意的是,有时必须使用代理服务器才能连接成功。

也可以离线安装,下载包的地址是

下载完该jar之后,直接拷贝到Eclipse安装目录下的dropins目录下,重启Eclipse即可

*如何使用

安装成功后,file=>new=>other菜单里面会多出一项ModelGoon Diagrams,在自己已有的java工程中新建一个class diagram,用以生成类图。创建完成后你会发现生成了一个.mgc后缀的文件,现在你可以用这个文件创建自己的类图了。用法相当直接,你可以把若干个java类拖拽进这个文件视图中,UML类图自然被生成,以及各个类之间的关系。

*参考资料

需要注意的是,有时必须使用代理服务器才能连接成功。

*为什么选择ModelGoon而不是其他的插件

其他的UML插件也能完成类似的功能,但是在安装使用的过程中会碰到种种问题。

常有人推荐EclipseUML这个插件,但是目前这个项目的主页无法打开,似乎已停止维护;

还有Slime UML据说也不错,但是找不到下载源;

此外还有AgileJ口碑也不错,可惜是付费的,没有免费版;

至于papyrusuml,只是单向的,做模型设计、绘制UML图时使用,而并不支持逆向工程;