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

Nic*_*han 10 diagram uml class

public abstract class Shape {   
    abstract int area();
}
Run Code Online (Sandbox Code Playgroud)

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

public class Room { 
    int nWindows;   
}
Run Code Online (Sandbox Code Playgroud)

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

Ist*_*ter 12

抽象

根据UML规范:

抽象分类器的名称以斜体显示,允许使用的字体.替代地或另外地,可以使用其名称之后或之下的文本注释{abstract}来示出抽象分类符.

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

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

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

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

没有能见度

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

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

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

等等.