网站大量收购独家精品文档,联系QQ:2885784924

UML7 对象类的设计与 及编程.ppt

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
UML7 对象类的设计与 及编程.ppt

对象类的设计与编程 对象类的产生,是从少量的实例推广到大量相似实例的抽象化过程。 t1:Trade product=“soap” quantity=10 total_price=$8.5 t2:Trade product=“pen” quantity=80 total_price=$23.76 近似Java语言的伪码,它展示了如何实施交易对象 Class Trade { //交易 String product; //产品 int quantity; //数目 double total_price; //总价格 //运算 void calculatePrice() { //提取单价unit_price,然后计算总价格 // total_price=uint_price * quantity //数量大时另加折扣 } } 构造和清除对象 类是某类东西的样板,要使用对象,就必须要构造对象的实例。在编程语言中,具体构造实例的运算称为构造函数或构造器(constructor)。 实例化时,有关的属性要置初值,而实例本身则要有一对象引址装载(object reference)。在编程语言中用来存放对象引址的变量,就是对象类的实例名。 对象一经构造,就可以一直使用到清除为止,清除可用析构函数来完成,以便重新使用所占空间。可用引址数来跟踪指向同一对象的引址个数,当引址数数为零时,表明对象已经无用,可以把它清除。 某些编程语言(如Java和 Lisp)无需明显地清除对象,其语言系统本身具有收集无用对象并自动清除的功能。 在UML设计图中析构函数一般被省略。 p1:Person name=“John” age=20 p,q:Person name=“Mary” age=18 a,b,c:Person name=“Peter” age=18 引址数=1 引址数=2 引址数=3 关联和连接 关联往往是句子中动词的直接表现。如:“有”、“包含”、“组成”等等。 类的名字如果太一般,则要在关联的一端写上类的角色名。 两类之间的关联,是由装载对象引址的变量来实施。 变量hobbies把我们从一个人的对象引导到其嗜好。 反过来,在Hobby对象中的变量person,可以引导 到相应的人对象。这种导向变量,可以放置在关联间 的任意一类(单向引导),可以用箭头表示引导方向; 也可以两者皆有(双向引导),视实际需要而定。 双向引导必须保证引址完整性, 即两个引址都必须指向正确的 对象,且其中一个引址的内容 被清除后,对应的另一个也必 须去掉。而单向连接只需在清 除对象时同时清除连接即可。 在对象设计中,尽量使用单向 连接,必要时才用双向连接。 Hobby name : String person : Person Person name : String age : Integer hobbies : Hobby[*] changeName() incrementAge() n 1 1 n Polygon Point 3..n 1 {有序} 3..n 1 {分类} 三元和多元连接 N元关联并非属于某一类,而是依赖所有参与关联的类,是在N个类之间建立一种关系 。在N元关联中,如果某一端点的类为A有多重性为m,表示把其它N-1对象固定后,A类的对象可取m个。多重性大于1的N元关联,每一个连接,最多用N个对象引址来指定,这样的一组引址,称为候选键码。 1..4 3..5 0..2 Post(职位) 候选键码为(cmt:Committee,person:Person,year:Year) 候选码要求委员会、年度和人三者必须唯一确定一个职务。多重性的限制,可以在addPost中实施。 为保证引址完整性,可把Committee类中的运算addPost设置为核心运算,负责处理与Year类和Person类之间的正反方向的连接。也可加上removePost运算,也作为核心运算之一。 职务变量posts包含 一序列对象对,这些对象对构成了三类对象之间的连接。 Object[*][2]为(Committee, Person) Object[*][2]为(Committee, Year) Object[*][2]为(Person,Year) 服务类和委托法 在类的设计过程中,常常把属性按功能分组,作为服务类(部分类)。服务类把原本属于主类的属性和操作包装起来,而自身成为主类的属性,与主类的关联是组成型,是整体与部分间的从属关系。 服务类考虑如何为主类提供服务,主类则把 一些运算委托给服务类,有后者运算做具体执 行。委托法是一种重复使用现有类的好方法。 {有序} 增加一个组类(

您可能关注的文档

文档评论(0)

yuzongxu123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档