Java 组合和聚合代码

Java 组合和聚合代码,java,Java,在合成中,一旦容器对象销毁,包含的对象就会被销毁,而在聚合中则不然 这可以被认为是一个合成码吗 class A { Integer a = new Integer(); } 聚合 class Room { House house; public void main(String args[]) { house = new House(); } } class House { } 你的代码无法编译。(house不是静态的)我不明白

在合成中,一旦容器对象销毁,包含的对象就会被销毁,而在聚合中则不然

这可以被认为是一个合成码吗

class A
{
    Integer a = new Integer();
}
聚合

class Room
{
    House house;
    public void main(String args[])
    {  
        house = new House();
    }
}

class House
{

}

你的代码无法编译。(
house
不是静态的)我不明白您的示例中“聚合”是什么意思。好的,我删除了静态关键字,聚合意味着“在聚合中,容器对象销毁后所包含的对象不会被销毁”我仍然不明白这是什么意思的“聚合”,但在您的示例中,当你的
房间
实例为GC'd时,你的
房子
实例将为GC'd。我同意@Kirk Woll的观点,这个例子非常糟糕。这不仅不是一个集合的例子,一个房间包含一个房子的想法是非常荒谬的。对于聚合,您的
House
类必须在
Room
外部初始化,并传入对该实例的引用。