Java组合 - 对原始类型变量也有效吗?

时间:2016-10-01 16:25:14

标签: java composition

我正在阅读有关构图定义的内容,即

“has-a”,所以例如汽车有引擎

组合意味着一个类的一个字段是另一个类的引用类型变量。

让我感到困惑的是,如果我们有银行帐户类,我无法找到,我们使用这个:

私人双重余额= 0.0;

我们可以说帐户有平衡吗?这是否意味着原始类型变量也可以包含在“组合”的定义中?

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

关联,聚合,组合,抽象,泛化,实现,依赖是类之间的关系。我们不将这些术语用于基元变量。

组合是对象之间的“拥有”关系。银行帐户类具有余额,但余额不是对象。因此,我们不会将此包含在组合的定义中。

答案 1 :(得分:0)

构图是一个概念,我认为它不应受特定语言规则的限制。

在您的示例中,帐户类具有" has-a"与平衡的关系。但是,由于基本类型double足以表示平衡,因此在示例中使用了原始double。但这并没有改变" has-a"关系。因此,从概念上讲,无论变量是否是原始类型,它都应该是构成的一部分。

wikipedia entry of composition中,您可以看到C中的合成示例,其中基元被视为合成的一部分。

我同意在典型的UML图中,我们可能会将余额显示为Account类的属性,而不是在单独的块中显示它,但余额仍然是复合结构的一部分 - Account。