Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
组合:容器是否可以在没有包含对象的情况下存在?JAVA_Java_Composition - Fatal编程技术网

组合:容器是否可以在没有包含对象的情况下存在?JAVA

组合:容器是否可以在没有包含对象的情况下存在?JAVA,java,composition,Java,Composition,什么是作文 答:当容器对象被“销毁”时,其所有组件 物体被摧毁 B:当其中一个合成对象被销毁时,容器将 也会被摧毁 例如: class Car { Engine engine = new Engine(); } 如果我毁了这辆车,引擎也会被毁(A点)。 但是如果我破坏了引擎,即使没有引擎,汽车也会存在,这仍然是成分(B点) A点和B点都对吗?或者A是唯一的一个。你说的“破坏”是什么意思?垃圾收集?@OneCricketeer是的,如果我做car.engine=null

什么是作文

  • 答:当容器对象被“销毁”时,其所有组件 物体被摧毁
  • B:当其中一个合成对象被销毁时,容器将 也会被摧毁

例如:

class Car {      
    Engine engine = new Engine();
}
如果我毁了这辆车,引擎也会被毁(A点)。 但是如果我破坏了引擎,即使没有引擎,汽车也会存在,这仍然是成分(B点)


A点和B点都对吗?或者A是唯一的一个。

你说的“破坏”是什么意思?垃圾收集?@OneCricketeer是的,如果我做car.engine=null;(B点)或我将Car的参考变量设置为null,carReference=null;(A点)但这与合成有什么关系?只要你有一个对象的引用,它就不会被垃圾收集。如果在没有其他引用的情况下将引擎设置为null,则引擎将消失。你会有一辆没有引擎的汽车。如果你将Car对象设置为null,那么汽车和引擎都将被gc'd。@JoakimDanielson这是一个例子,我在研究构图,我试图用谷歌搜索,但什么也没找到。我只是想知道组合是否意味着当包含的类不存在时,容器类就存在,因为我的老师这么说。