Java中的类聚合关系是否只能通过实例对象来实现?

Posted

技术标签:

【中文标题】Java中的类聚合关系是否只能通过实例对象来实现?【英文标题】:Is class aggregation relationship in Java only achieved through instance objects?Java中的类聚合关系是不是只能通过实例对象来实现? 【发布时间】:2018-08-12 15:13:00 【问题描述】:

如果 A 类从 B 类调用一个静态方法,这是否仍然符合“聚合”关系? 那么,类关联是不是也只能通过调用类对象来实现呢,还是调用静态方法才算关联关系呢?

【问题讨论】:

【参考方案1】:

是的,关联以及它的两种特殊形式,聚合和组合,都是根据对象实例之间的交互来定义的:

关联定义了对象类之间的关系,它允许一个对象实例导致另一个对象实例代表它执行操作。 [Wikipedia]

根据实例定义的唯一关系是依赖:例如,通过接收实例作为参数,或调用任何静态方法来建立关系与否。

【讨论】:

您好,感谢您的回答。那么这是否意味着如果类 A 只是创建一个字符串变量 String x = "chair"; A 类现在正在聚合类 String? @NewLearner 如果x 是类的成员(取决于语言,它可能被称为字段、属性或成员变量),那么它就是一个聚合(HAS-A)。如果它是一个局部变量,那么它只是一个依赖项。

以上是关于Java中的类聚合关系是否只能通过实例对象来实现?的主要内容,如果未能解决你的问题,请参考以下文章

UML中的类图关系

java中的组合与聚合,区别。。。详细点

第4章 对象与类

如何判断java的一个类能否继承另一个类? 还有在new实例化一个对象时候有啥限制,

java中instanceof的用法

java 聚合和组合的区别?