社区
Java SE
帖子详情
请教一下UML中的聚集和组成在java中怎么理解
classnameextendsjava
2008-04-27 11:50:41
搜索出来的说法也不一
不要用文字或者实例来解释 用代码表示
比如
class A{
}
class B{
A a=new A();
}
class C extends A{
}
class D{
class E{
}
}
或者其他形式
...全文
202
11
打赏
收藏
请教一下UML中的聚集和组成在java中怎么理解
搜索出来的说法也不一 不要用文字或者实例来解释 用代码表示 比如 class A{ } class B{ A a=new A(); } class C extends A{ } class D{ class E{ } } 或者其他形式
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yeliguo12345
2008-04-28
打赏
举报
回复
不太懂,接分
classnameextendsjava
2008-04-28
打赏
举报
回复
想了一下 10楼的解释似乎不是我想要的 他的解释还停留在UML上面 没转到Java代码上来
classnameextendsjava
2008-04-28
打赏
举报
回复
某人的空间找来一点解释
聚合(Aggregation)
聚合(图F)是关联的一种形式,代表两个类之间的整体/局部关系。聚合暗示着整体在概念上处于比局部更高的一个级别,而关联暗示两个类在概念上位于相同的级别。聚合也转换成Java中的一个实例作用域变量。
关联和聚合的区别纯粹是概念上的,而且严格反映在语义上。聚合还暗示着实例图中不存在回路。换言之,只能是一种单向关系。
图F
合成(Composition)
合成 (图G) 是聚合的一种特殊形式,暗示“局部”在“整体”内部的生存期职责。合成也是非共享的。所以,虽然局部不一定要随整体的销毁而被销毁,但整体要么负责保持局 部的存活状态,要么负责将其销毁。局部不可与其他整体共享。但是,整体可将所有权转交给另一个对象,后者随即将承担生存期职责。
Employee和TimeCard的关系或许更适合表示成“合成”,而不是表示成“关联”。
但不是很认同这种解释方式 虽然java是面向对象的 但是代码毕竟还是有抽象的东西 不可能全部对应现实中的实体 不应该用带有实际逻辑的东西来表示 按照他这个解释 聚集(聚合)和组成(组合)在java中的表现形式是一样的了?
网上搜了好多结果 说法都不一样 不知道哪个是对的了
classnameextendsjava
2008-04-28
打赏
举报
回复
[Quote=引用 8 楼 powerlee2008 的回复:]
简单的说,
聚集(也叫聚合)是:人和眼镜的关系。
组成(也叫组合)是:人和眼睛的关系。
[/Quote]
这个我能分清 你用代码表示好不好
我是风
2008-04-28
打赏
举报
回复
简单的说,
聚集(也叫聚合)是:人和眼镜的关系。
组成(也叫组合)是:人和眼睛的关系。
classnameextendsjava
2008-04-28
打赏
举报
回复
晕
要把聚集和组成分开阿
人和手 就是聚集关系 因为手脱离了人体就失去了意义。
这个貌似是组成
对于组成关系,可以允许每个类的对象单独存在:如: 雇主 和雇员 。雇员离开了这个雇主还可以去找其他雇主。
不知道这个跟组成或者聚集有啥关系 雇主不是由雇员组成也不是雇员聚集而成
不要用文字解释了 那种可能我懂 用java代码来表示
比如这种是依赖
class A{
}
class B{
void d(A a){
}
}
聚集和组成又是哪种形式
class A{
}
class B{
A a=new A();
}
这个形式肯定是其中一种 我的理解应该是聚集
thinking in java里这种形式好像被翻译成组合(第一种方法非常直观:只需在新的类中产生现有类的对象。由于新的类是由现有类的对象所组成,所以这种方法称为组合。) core java里被翻译成聚合(聚合关系意味着类A的对象包含类B的对象。)
core java1的89第二段最后一句“也就是说,add应该是Order类的一个方法,而Item对象是一个参数。”但是在90页的UML图中却用聚集的符号来表示这种关系 真的很不理解
我搜索出来的结果 组成有的人用的是继承来表示的 也有把我上面写的哪种叫组成
所以我想不用管java里怎么个叫法 我想知道UML里的聚集和组成对应的java代码表示形式 有理解透彻的指点一下 谢谢
chenhongxin
2008-04-28
打赏
举报
回复
聚集和组成在代码上就是上面的形式。
聚集和组成在类的定义上是相同的形式,
不过两者的语意不同。对于聚集关系。部分类对象(b,c)不能单独存在。
它的生命周期依赖于整体类的生命周期 象:人和手 就是聚集关系 因为手脱离了人体就失去了意义。
chenhongxin
2008-04-28
打赏
举报
回复
class A{};class B{};class C{}
class D
{
public D()
{
A a = new A();
B b = new B();
C c = new C();
}
public void doSTH()
{
}
}
M_song
2008-04-28
打赏
举报
回复
楼上说的不错,理解的也不错!
代码的话主要是实体设计..
Shine_Panda
2008-04-28
打赏
举报
回复
class A {
B b = new B();
C c = new C();
}
聚集和组成在代码上就是上面的形式。
聚集和组成在类的定义上是相同的形式,
不过两者的语意不同。对于聚集关系。部分类对象(b,c)不能单独存在。
它的生命周期依赖于整体类的生命周期 象:人和手 就是聚集关系 因为手脱离了人体就失去了意义。
对于组成关系,可以允许每个类
的对象单独存在:如: 雇主 和雇员 。雇员离开了这个雇主还可以去找其他雇主。
代码真的就是那么简单
希望你能理解。
KKK2007
2008-04-28
打赏
举报
回复
一两句说不清,懒的写~~
java
的一些基础知识 .
想来学习
Java
也有两个年头了,永远不敢说多么精通,但也想谈谈自己的感受,写给软件学院的同仁们,帮助大家在技术的道路上少一点弯路。说得伟大一点是希望大家为软件学院争气,其实最主要的还是大家自身的进步提升...
Java
的一些基础知识
——
Java
学习杂谈一 1. 关于动态加载机制—— 学习
Java
比C++更容易
理解
OOP的思想,毕竟C++还混合了不少面向过程的成分。很多人都能背出来
Java
...在命令行窗口运行
Java
程序的时候,加上这个很有用的参数:
java
小结
想来学习
Java
也有两个年头了,永远不敢说多么精通,但也想谈谈自己的感受,写给软件学院的同仁们,帮助大家在技术的道路上少一点弯路。说得伟大一点是希望大家为软件学院争气,其实最主要的还是大家自身的进步提升...
java
学习杂谈
ORMPosted at 2010/03/06 Under
Java
经验汇总评论暂缺 这是最后一篇
Java
杂谈了,以ORM框架的谈论收尾,也算是把J2ee的最后一方面给涵盖到了,之所以这么晚才总结出ORM这方面,一是笔者这两周比较忙,另一方面...
一个计算机专业学生几年的编程经验汇总 (该系列一共 11 篇,看完之后,
java
基础绝对有不小的提升!)
想来学习
Java
也有两个年头了,永远不敢说多么精通,但也想谈谈自己的感受,写给 软件学院的同仁们,帮助大家在技术的道路上少一点弯路。说得伟大一点是希望大家为软件 学院争气,其实主要的还是大家自身的进步提升...
Java SE
62,623
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章