如何在 UML 类图中绘制抽象方法。

12
public abstract class Shape {   
    abstract int area();
}

如何为抽象方法绘制UML类图?使用+-还是#

public class Room { 
    int nWindows;   
}

如果类实例变量既不是公有的,也不是私有的或受保护的,那该怎么办?

1个回答

13

摘要

根据UML规范:

抽象分类器的名称以斜体显示,取决于所使用的字体。或者,在其名称后面或下方可以使用文本注释{abstract}来显示抽象分类器。

然而需要注意的是,Operation并不是一个分类器。它仍然作为BehavioralFeature具有isAbstract属性,但2.5版本的规范未定义如何建模抽象性质。旧版本的规范(1.4.x)使用与Classifiers相同的方法来表示操作抽象性质,并且这是一种被广泛认可的方法。只需要注意特征中花括号内的元素在行末呈现,而不是直接跟在名称后面(分类器名称后没有其他规范)。

可能作者们在2.5版本的特征抽象表示法中犯了一个错误遗漏。

当然,抽象操作也可以有任何能见度类型。

当然,如果包含该操作的分类器(您情况下的类)也是抽象的,则该操作可能只是抽象的。

无可见度类型

通常在UML中,可见度类型是可选的,即您可以简单地省略它。请注意,UML是一种模型,因此实际上可以忽略一些不相关的元素或在建模的后期指定它们。在UML中不使用任何可见度类型不允许您对其最终可见度类型做出任何假设。

另一方面,如果在实际代码中您未使用可见度类型规范(如果允许的话),那么会有一些默认行为。例如:

  • 在Java中,它是“package-private”(#)- 在UML理解中,Java将其称为“包私有”,
  • 在C ++中,您将得到private功能(-),
  • 在PHP中,此类功能被视为public(+)

等等。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接