我对关联,聚合和组成有些困惑.即使大量的网站和论坛讨论了此主题,但在阅读其中一些内容后,我变得更加困惑.
我想知道以下是否正确:
1.)聚集-如果整体被破坏,将存在.例如,一个引擎可以有或没有汽车.
2.)合成-如果对象被破坏,将不存在.例如,没有房子,房间就不可能存在.
3.)关联-我不确定在什么情况下应该使用它.有人可以对此发表评论.
在编写用于聚合,组合和关联的Java代码时
4.)汇总
Class Car {
private Engine engine;
public void setEngine(Engine engine){
this.engine=engine;
}
public Engine getEngine(){
return engine;
}
}
我认为,如果这是一个聚合关联,则应该定义访问器和变异器.这个对吗 ?
根据我对聚合的定义,我提到如果Car对象被破坏,则可以访问Engine.但是,我没有在上面的代码中看到这种现象.如果Car对象被破坏,将无法像car.getEngine()一样访问引擎.那么这是怎么发生的呢?
组成
Public House {
private Room room;
Public House (){
room = new Room (int noRooms, String nameOfHouse);
}
}
我认为,如果它是C0mposition,则不应有任何访问器更改程序功能.而对象室只能在构造函数内部创建.并且保存room对象的实例方法必须为Private?我对么 ?
注意:我再次谷歌搜索,并访问了许多网站/论坛,以消除我的疑惑.类似的问题在很多论坛上发布,但我对此感到更加困惑.有人可以帮我消除我的疑虑.谢谢!