我们如何在uml类图中绘制抽象方法

时间:2016-10-26 03:32:25

标签: class uml diagram

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

我们如何绘制抽象方法的UML类图?使用'+',' - '或'#'?

public  class   Room    {   
int nWindows;       
}   

如果类实例变量没有public,private或protected,该怎么办? 谢谢你们..

1 个答案:

答案 0 :(得分:8)

摘要

根据UML规范:

  

抽象分类器的名称以斜体显示,允许使用的字体。或者或另外,可以使用文本注释{abstract}在其名称之后或之下显示抽象分类器。

但请注意,操作分类器。它仍然具有作为BehavioralFeature的isAbstract属性,但2.5规范没有定义如何模拟抽象的事实。较旧的规范(1.4.x)使用​​与分类器相同的方法,它是一种广泛认可的方法来显示操作抽象。请注意,要素的大括号中的元素显示在行的末尾而不是在名称后面(分类器在名称后直接没有其他规范)。

可能作者在2.5规范中忽略了一个错误的特征抽象符号。

抽象操作当然可以具有任何可见性类型。

当然,只有当包含Classifier(在你的情况下为Class)中的操作也是抽象的时,操作才可能是抽象的。

没有可见性

一般来说,UML中的可见性类型是可选的,即您可以简单地省略它。只要考虑到UML是一个模型,它实际上可以忽略一些不相关的元素,或者可以在建模的后期阶段指定它们。在UML中不使用任何可见性类型不允许您对其最终可见性类型做出任何假设。

另一方面,如果在实际代码中您没有使用可见性类型规范(如果允许的话),则存在一些默认行为。例如

  • 在Java中它的包(#) - 在UML理解中,Java称之为" package-private",
  • 在C ++中,你最终会得到私有功能( - ),
  • 在PHP中,此类功能被视为公共(+)

等等。