【问题标题】:Object as data attribute of class in Class diagram UML对象作为类图 UML 中类的数据属性
【发布时间】:2013-08-21 21:46:40
【问题描述】:

如果我添加一个指向类对象的指针,作为UML类图中类的数据属性,以下格式是否错误?

【问题讨论】:

  • “错误”是什么意思?据我所知,不违反 UML 规范。指针仍然是成员变量。在更概念的层面上,我将其解读为“每个特工都有能力、移动和视野”。不管那些是什么意思。更重要的是:它对您和您的观众有用吗?大家知道你的意思吗?如果是这样,那很好。
  • 谢谢@sfinnie,我搜索了互联网,但找不到任何关于在类图中使用对象的信息,在类属性中下划线是否正确?
  • 已提供答案,比评论更合适。

标签: class object uml


【解决方案1】:

找不到关于在类图中使用对象的任何信息,是 下划线对象在类属性中是否正确?

我认为您可能误解了类、对象和属性。如果是我造成的误解,请道歉。所以。这是简短的答案:

  • 属性的类型是类是绝对正常和正常的。换句话说,您不限于使用原始类型,如 int、long、char 等。
  • 如您所说,结果是这些属性在运行时的值本身就是对象。具体来说,是 Ability、Move 和 See 类的实例。
  • 更具体地说,每个 Agent 实例(即每个 Agent 对象)都将保存对 3 个其他对象的引用(或更准确地说是指针):Ability、Move 和 See 各一个实例。

所以,假设这是对的,那么你所拥有的就是正确的——除了下划线。

在属性或操作下划线表示它位于类级别 - 而不是实例级别。它相当于java中的static。考虑在类范围或构造函数中声明常量。

如果我理解您的模型,那不是您想要的。您希望每个 Agent 实例都持有(指向)其自己的 Ability、Move 和 See 实例。您不希望所有 Agent 对象共享相同的 3 个实例。假设是这样,您不需要下划线。

希望我能理解并有所帮助。

【讨论】:

  • 同时删除属性名称中的“”。如果你的属性是一个类的类型,它是对这个类的一个实例的引用,所以不需要(而且是非法的)添加''来表示它是一个指针。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-16
  • 1970-01-01
  • 2019-08-08
  • 1970-01-01
  • 2015-11-12
  • 2018-09-29
  • 1970-01-01
相关资源
最近更新 更多