javauml代码结构 java代码结构设计

刚学JAVA,现在才开始,讲到了UML图 , 觉的UML图有点难理解UML是统一建模语言 。流程图类似于顺序图 。
UML定义了5类,10种模型图
UML提供的基本模型图包括:
(1)、用例图:展示系统外部的各类执行者与系统提供的各种用例之间的关系
(2)、类图:展示系统中类的静态结构(类是指具有相同属性和行为的对象 , 类图用来描述系统中各种类之间的静态结构)
(3)、对象图:是类图的一种实例化图(对象图是对类图的一种实例化)
(4)、包图:是一种分组机制 。在UML1.1版本中,包图不再看作一种独立的模型图)
(5)、状态图:描述一类对象具有的所有可能的状态及其转移关系(它展示对象所具有的所有可能的状态以及特定事件发生时状态的转移情况)
(6)、顺序图:展示对象之间的一种动态协作关系(一组对象组成,随时间推移对象之间交换消息的过程 , 突出时间关系)
(7)、合作图:从另一个角度展示对象之间的动态协作关系(对象间动态协作关系,突出消息收发关系)
(8)、活动图:展示系统中各种活动的执行流程(各种活动的执行顺序、执行流程)
(9)、构件图:展示程序代码的物理结构(描述程序代码的组织结构,各种构件之间的依赖关系)
(10)、配置图:展示软件在硬件环境中(特别是在分布式及网络环境中)的配置关系(系统中硬件和软件的物理配置情况和系统体系结构).
如何从JAVA代码生成UML类图推荐使用ModelGoon!
*ModelGoon是什么javauml代码结构?
它是一个Eclipse插件,用于基于UML图javauml代码结构的模型设计,以及逆向工程(即从已有源代码生成类图等,以作为代码分析或者文档使用) 。
*适用条件
ModelGoon目前最新的版本是3.0.0 , 适用于Eclipse3.4 ,包括最新的Eclipse 3.6版本
*如何安装
推荐在线安装,site地址是
需要注意的是,有时必须使用代理服务器才能连接成功 。
也可以离线安装,下载包的地址是
下载完该jar之后,直接拷贝到Eclipse安装目录下的dropins目录下,重启Eclipse即可
*如何使用
安装成功后,file=new=other菜单里面会多出一项ModelGoon Diagrams,在自己已有的java工程中新建一个class diagram,用以生成类图 。创建完成后javauml代码结构你会发现生成javauml代码结构了一个.mgc后缀的文件,现在你可以用这个文件创建自己的类图了 。用法相当直接,你可以把若干个java类拖拽进这个文件视图中,UML类图自然被生成,以及各个类之间的关系 。
*参考资料
需要注意的是,有时必须使用代理服务器才能连接成功 。
*为什么选择ModelGoon而不是其javauml代码结构他的插件
其他的UML插件也能完成类似的功能,但是在安装使用的过程中会碰到种种问题 。
常有人推荐EclipseUML这个插件,但是目前这个项目的主页无法打开,似乎已停止维护;
还有Slime UML据说也不错,但是找不到下载源;
此外还有AgileJ口碑也不错,可惜是付费的,没有免费版;
至于papyrusuml,只是单向的,做模型设计、绘制UML图时使用,而并不支持逆向工程;
java 类与类之间的关系 及uml图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;
【javauml代码结构 java代码结构设计】}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实现代码?Point2D.java
/**
* Title: Point2D.javabr
* Description:
*
* @author 王凯芳
* @date 2020年3月5日 下午7:09:35
* @version 1.0
*/
public class Point2D {
protected float x;
protected float y;
public Point2D() {
super();
}
public Point2D(float x, float y) {
super();
this.x = x;
this.y = y;
}
public float getX() {
return x;
}
public void setX(float x) {
this.x = x;
}
public float getY() {
return y;
}
public void setY(float y) {
this.y = y;
}
public float[] getXY() {
return new float[] { x, y };
}
public void setXY(float x, float y) {
this.x = x;
this.y = y;
}
@Override
public String toString() {
return "("x","y")";
}
}
Point3D.java
/**
* Title: Point3D.javabr
* Description:
*
* @author 王凯芳
* @date 2020年3月5日 下午7:09:35
* @version 1.0
*/
public class Point3D extends Point2D {
private float z;
public Point3D() {
super();
}
public Point3D(float x, float y, float z) {
super();
this.x = x;
this.y = y;
this.z = z;
}
public float getZ() {
return z;
}
public void setZ(float z) {
this.z = z;
}
public float[] getXYZ() {
return new float[] { x, y, z };
}
public void setXYZ(float x, float y, float z) {
this.x = x;
this.y = y;
this.z = z;
}
@Override
public String toString() {
return "("x","y","z")";
}
}
关于javauml代码结构和java代码结构设计的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读