欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年用UML描述Java类 .pdf

    • 资源ID:26177774       资源大小:198.25KB        全文页数:6页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年用UML描述Java类 .pdf

    用 UML 描述 Java类作者:仙人掌工作室本文选自:赛迪网本文从 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类图是非常有用的。例如,在许多书籍中,我们可以看到作者用类图来描述各个类之间的关系。显然,空的类没有什么实际意义。我们要为Person 类加上一些实例变量和简单的方法。下面是Person 类的代码,已经过简化处理,不含任何注释:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 6 页 - - - - - - - - - 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; 图二显示了Person 类的 UML图。可以看到,UML用“+”和“ -”符号分别表示public和 private修饰符。 UML只显示操作和属性类型之类的特征信息,操作的结果在行未的冒号之后声明。图二:在UML类图中描述属性和方法由于 UML类图不包含方法的具体实现,所以在 UML类图中查看属性和方法等基本信息要比直接查看Java 源代码更方便一些。在创建UML图时,人们常常忽略或隐藏各种细节信息,以便查看和掌握类的整体结构。例如,UML类图常常只显示出属性和操作的名称,简单的访问器方法(诸如getXXX() 、setXXX() 之类的方法)也常常不显示出来。图三就是简化图二得到的结果。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页 - - - - - - - - - 图三:经过简化的Person 类 UML图图三清楚地显示出了Person 类主要的属性和方法。但是, 单个类的UML图还不是很有用。只有包含多个类且描述了多个类之间关系的UML图,才具有实用意义。UML用两个类之间的连线来表示两者之间的关系,不同的线型表示不同的关系,在UML类图中最常见的关系是关联关系。关联关系前面 Person 类的属性都是简单类型(Primitive Type),或者说是Java 直接提供的标准类型。现在来考虑下面的代码片断,它增加了一个对Organization实例的引用:public class Person . private Organization employer; . 引用的名称是employer ,意味着这里的Organization代表着 Person 的雇主。 图四显示了如何在UML中描述这种关系:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 6 页 - - - - - - - - - 图四:两个类之间的关联关系两个类之间的连线表示Person 类对 Organization类有一种依赖关系。这条线是一条实线(而不是虚线),表示这种依赖关系是一种关联。如有必要,关联关系可显示出角色、多重性、关联方向等属性。图四的关联关系显示出Organization对象在该关系中是雇主的角色,“ 0.1 ”表示每一个Person 类的对象最多和一个Organization类的对象有关系,也可能和 0 个 Organization对象有关系(即 Person 对 Organization的引用可设置为null ) 。 开叉的箭头表示Person类拥有对 Organization的引用,而不是Organization拥有对 Person 的引用。多重性多重性回答这样一个问题:在一个关系中,每个类各有多少对象参与其中?常见的多重性如图五所示。图五:常见的多重性及其含义前面我们已经看到了Java 代码中 0.1多重性的实例。 不难猜测, 多重性为“ 1”意味着一个类对另一个类的引用不能为 null (一般是这样一种情形:引用的值在构造函数中初始化,且在所有相关的set 方法中禁止把该引用设置为 null)。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 6 页 - - - - - - - - - 值为“ 1.* ”和“ 0.* ”的多重性稍微复杂一点。在Java 中,实现这类多重性的途径之一是使用某种集合类,例如 Vector ,来保存可能需要用到的多个引用:ClassA . Vector classB; / 保存 B类对象引用的Vector . 对于“ 1.* ”多重性,Java 程序必须确保Vector至少包含一项内容。在有些关系中,多重性的值可以是某个精确的范围或数字。例如,一个小孩最多有两个生物学意义上的健在双亲,即它的多重性可表示为“0.2 ”。用Java 代码描述这种关系时,程序必须带有确保Parent对象实例少于或等于 2 个的约束。一个 UML关联加上多重性、角色、关联方向之后,能够描述出大量信息,远比一大堆Java 源代码简洁和直观。虽然 UML图没有说明关系的具体实现方式,但它能够充分地说明关系的意义和作用。图六显示了标注多重性、角色名称之后的雇佣关系,它表示一个Person 可以为多个Organization工作,一个 Organization可以雇佣多个 Person 。图六:双向关联关系聚合与合成关联只是 UML中的关系之一。下面我们来看看UML中的其他两种关系聚合(Aggregation)和合成(Composition),它们实际上是关联关系的不同变种。聚合是这样一种关联关系,在这种关系中一个类的对象代表着另一个类的对象的一部分,有的人因此也把聚合关系叫做“全体- 部分”关系。 聚合关系用实线空心菱形箭头表示,箭头由表示Part的类指向表示Whole 的类,参见图七。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 6 页 - - - - - - - - - 图七:聚合与合成那么,在 Java 程序中聚合关系又是什么样的呢?答案是:这要看你在问谁。聚合是一个有争议的概念,表达的是一种生命周期依赖关系。有人根据习惯认为,聚合意味着Whole 类必须负责创建和拆除Part类的对象; 但也有人为聚合关系下了更宽松的定义。到底应该怎么理解,你最好能够在合作者之间取得一致意见和约定,避免混淆。合成是一种较强的聚合关系。这两种关系基本相似,不同之处在于,在合成关系中,Part 的对象任何时候只能从属于一个Whole 对象,也就是说,必须用Java 代码确保这种唯一的从属关系。前面我们已经看到,类的属性、操作以及各个类之间的关系可以用UML类图来描述。 然而, 对于 Java 类里面的对象引用,什么时候应该把它当作关联关系、什么时候把它当作属性,这一点还没有搞清楚。答案是:要在哪一个层次交流信息,UML图就应该具体到哪一个层次。有些时候,即使是简单的对象,也最好画出它的类图,把其他类对它的引用描述成关联关系;另一些时候,可能需要把对象引用表示成属性,甚至从类图完全省略对该对象的引用,以便在类图中突出显示其他更重要的类和关系。大多数的UML工具软件都提供了隐藏UML类图各种细节信息的机制。获得 UML图一般有两种办法,手工设计UML图(在此基础上可由UML工具生成Java 应用的骨架代码),或者用工具分析 Java 源代码(甚至字节码)获得UML图。一些优秀的UML工具能够在你绘制UML图的同时生成Java代码,在你编辑Java 代码的同时更新UML图。例如TogetherSoft的 Together ControlCentre,本文的UML图就是用这个工具绘制的,有免费版Together Community Edition可供试用。结束语:本文就到这里结束。在下一篇文章 中,我们将分析如何在UML中表示 Java 的两个重要概念:继承,接口。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 6 页 - - - - - - - - -

    注意事项

    本文(2022年用UML描述Java类 .pdf)为本站会员(Q****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开