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

标签 java composition

我正在阅读有关成分定义的内容,即

“has-a”,例如汽车有发动机

组合意味着一个类将另一个类的引用类型变量作为其字段之一。

如果我们有一个银行帐户类,并且我们使用它,那么让我困惑并且我找不到的是:

私有(private)双倍余额 = 0.0;

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

感谢您的帮助。

最佳答案

组合是一个概念,我认为它不应该受到语言特定规则的限制。

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

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

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

关于Java 组合 - 对于原始类型变量也有效吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39808903/

相关文章:

c++ - C4430 和 C2146 Visual Studio 错误

java - 仅将 JPanel 填充到内部元素的高度

java - 表示带有列/行标签的矩阵

.net - 应用程序在网络共享上时的 MEF 组合

c# - C# 不支持多重继承,那么我怎样才能让它工作呢?

python - 实现表示 "a list with a title"的类的 pythonic 方法是什么?

javascript - 在 Ramda 中组合函数,每个函数接收相同的值

java - 某些测试中的错误输出

java - 使用 Java Applet 记住智能卡 PIN 码以访问 keystore

java - 如何在不覆盖的情况下将所有映射从 Bundle 传输到另一个 bundle?