UML - 未在字段中定义时 Java 类 之间的关系

UML - Relation between Java classes when not defined in a field

class ClassA {
    private JFrame frame = new JFrame(); // has-a, composition 

    public ClassA() 
    {
       frame.add(new ClassB());
    }       
}

A类和B类之间的relationship/association有名字吗? ClassA 没有 ClassB 的字段。

我在 Y. Daniel Liang 的 "Introduction to Java Programming" 中阅读了关于 class 关联并使用了 google,但找不到具有这种特定关系的示例。

我正在绘制一些现有代码的 UML 图,并希望获得正确的关系注释。

也许是我想多了,只是单纯的联想?

您的 ClassB 实例是通过 JFrame 存储的,因此您可以使用 class 关系 :

或者只添加从 ClassAClassB

的依赖项

私有属性通常建模为单向关联(尽管可导航性也可以通过拥有属性以外的其他方式实现)。

您的源代码定义了属性 frame,因此,您应该在 ClassAJFrame 之间建立关联模型。

然后 class JFrameClassB 对象进行了 add 操作。这只有在 JFrameClassB.

有关联时才有意义

最后 ClassA 创建了 ClassB 的新实例。这个事实可以通过“创建”关系(虚线开放箭头)来形象化。

ClassAClassB 之间不存在其他关系。由于我们不知道 JFrame 的属性是否私有,因此 ClassA 甚至可能无法访问 ClassB,即使它创建了它。

组合可能存在于 JFrameClassB 之间,但您的源代码没有为该决定提供足够的上下文。 ClassA 和 ClassB 之间没有任何意义,因为它们甚至没有关联,无论是 AssociationClass 还是普通 Association。