搜索出来的说法也不一 
不要用文字或者实例来解释 用代码表示
比如
class A{
}class B{
A a=new A();
}class C extends A{
}class D{
  class E{
  }
}
或者其他形式

解决方案 »

  1.   

    class A {
       B b = new B();
       C c = new C();}聚集和组成在代码上就是上面的形式。 聚集和组成在类的定义上是相同的形式,不过两者的语意不同。对于聚集关系。部分类对象(b,c)不能单独存在。
    它的生命周期依赖于整体类的生命周期 象:人和手 就是聚集关系 因为手脱离了人体就失去了意义。
    对于组成关系,可以允许每个类
    的对象单独存在:如: 雇主 和雇员 。雇员离开了这个雇主还可以去找其他雇主。代码真的就是那么简单
    希望你能理解。
      

  2.   

    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()
      {
        
      }
    }
      

  3.   


    要把聚集和组成分开阿人和手 就是聚集关系 因为手脱离了人体就失去了意义。
    这个貌似是组成对于组成关系,可以允许每个类的对象单独存在:如: 雇主 和雇员 。雇员离开了这个雇主还可以去找其他雇主。 
    不知道这个跟组成或者聚集有啥关系 雇主不是由雇员组成也不是雇员聚集而成不要用文字解释了 那种可能我懂 用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代码表示形式 有理解透彻的指点一下 谢谢
      

  4.   

    某人的空间找来一点解释聚合(Aggregation)聚合(图F)是关联的一种形式,代表两个类之间的整体/局部关系。聚合暗示着整体在概念上处于比局部更高的一个级别,而关联暗示两个类在概念上位于相同的级别。聚合也转换成Java中的一个实例作用域变量。关联和聚合的区别纯粹是概念上的,而且严格反映在语义上。聚合还暗示着实例图中不存在回路。换言之,只能是一种单向关系。图F
    合成(Composition)合成 (图G) 是聚合的一种特殊形式,暗示“局部”在“整体”内部的生存期职责。合成也是非共享的。所以,虽然局部不一定要随整体的销毁而被销毁,但整体要么负责保持局 部的存活状态,要么负责将其销毁。局部不可与其他整体共享。但是,整体可将所有权转交给另一个对象,后者随即将承担生存期职责。Employee和TimeCard的关系或许更适合表示成“合成”,而不是表示成“关联”。
    但不是很认同这种解释方式 虽然java是面向对象的 但是代码毕竟还是有抽象的东西 不可能全部对应现实中的实体 不应该用带有实际逻辑的东西来表示 按照他这个解释 聚集(聚合)和组成(组合)在java中的表现形式是一样的了?
    网上搜了好多结果 说法都不一样 不知道哪个是对的了
      

  5.   

    想了一下 10楼的解释似乎不是我想要的 他的解释还停留在UML上面 没转到Java代码上来