快速业务通道

用UML描述Java类 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17

用UML描述Java类

时间:2011-05-25 Ahaoz

Java程序员的角度阐述UML和对象建模问题,是一个深入浅出的实用性介绍。 虽然从历史和基本理念方面来探讨UML非常吸引人,但我们还是直接从Java代码开 始,看看UML如何描述Java类,再在叙述过程中插入一些历史和基本理念方面的知 识。

UML类图

在Java中,我们用下面的代码声明两个公用类,每一个Java类放入一个文件, 文件的名字就是Java类的名字加上扩展名.java:

public class Person{} public class Organization{}

UML是Unified Modeling Language的缩写,即“统一建模语言”。与Java不同 ,UML是一种图形化的建模“语言”,它用一个矩形来表示一个类,在矩形的内部 写上类的名称,一个类图可以放入多个类。用矩形表示类,是UML中U(Unified) 起的作用。在UML的第一个版本出现,每一个对象建模专家都有自己的一套符号, 一些人用点表示类,一些人用圆圈表示类,还有一些人用圆角矩形表示类。显然 ,这很容易引起混乱。后来,Rational公司的三个专家——Grady Booch、James Raumbaugh、Ivar Jacobson达成了一致意见,同意“统一”他们各自使用的符号 ,UML终于创立,符号之争也终于落下了帷幕。图一就是上面两个Java类的UML类 图:

用UML描述Java类 - 编程入门网

图一 有二个类的简单类图

如果要描述一系列类的内部结构以及它们相互之间的关系,UML类图是非常有 用的。例如,在许多书籍中,我们可以看到作者用类图来描述各个类之间的关系 。

显然,空的类没有什么实际意义。我们要为Person类加上一些实例变量和简单 的方法。下面是Person类的代码,已经过简化处理,不含任何注释:

public class Person { private String name; private String socialSecurityNumber; private Date dateOfBirth; private String emailAddress;  public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSocialSecurityNumber() { return socialSecurityNumber; } public void setSocialSecurityNumber(String socialSecurityNumber) { this.socialSecurityNumber = socialSecurityNumber; } public Date getDateOfBirth() { return dateOfBirth; } public void setDateOfBirth(Date dateOfBirth) { this.dateOfBirth = dateOfBirth; } public int calcAgeInYears() {/*not implemented yet*/return 0;} }

用UML描述Java类(2)

时间:2011-05-25 Ahaoz

图二显示了Person类的UML图。可以看到,UML用“+”和“-”符号分别表示 public和private修饰符。UML只显示操作和属性类型之类的特征信息,操作的结 果在行未的冒号之后声明。

用UML描述Java类 - 编程入门网

图二 在UML类图中描述属性和方法

由于UML类图不包含方法的具体实现,所以在UML类图中查看属性和方法等基本 信息要比直接查看Java源代码更方便一些。在创建UML图时,人们常常忽略或隐藏 各种细节信息,以便查看和掌握类的整体结构。例如,UML类图常常只显示出属性 和操作的名称,简单的访问器方法(诸如getXXX()、setXXX()之类的方法)也常 常不显示出来。图三就是简化图二得到的结果。

用UML描述Java类 - 编程入门网

图三 经过简化的Person类UML图

图三清楚地显示出了Person类主要的属性和方法。但是,单个类的UML图还不 是很有用。只有包含多个类且描述了多个类之间关系的UML图,才具有实用意义。 UML用两个类之间的连线来表示两者之间的关系,不同的线型表示不同的关系,在 UML类图中最常见的关系是关联关系。

用UML描述Java类(3)

时间:2011-05-25 Ahaoz

关联关系

前面Person类的属性都是简单类型(Primitive Type),或者说是Java直接提 供的标准类型。现在

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号