public abstract class Shape {
abstract int area();
}
我们如何为抽象方法绘制 UML 类图?使用
+
, -
或 #
?public class Room {
int nWindows;
}
如果类实例变量没有公有、私有(private)或 protected 怎么办?
最佳答案
抽象的
根据UML规范:
The name of an abstract Classifier is shown in italics, where permitted by the font in use. Alternatively or in addition, an abstract Classifier may be shown using the textual annotation {abstract} after or below its name.
但是请注意,操作是 不是 一个分类器。它仍然有一个 isAbstract 属性作为 BehavioralFeature,但 2.5 规范没有定义如何对抽象的事实进行建模。较早的规范(1.4.x)使用与分类器相同的方法,这是一种广泛认可的显示操作抽象的方法。请注意,大括号中的要素元素显示在行尾,而不是紧跟在名称之后(分类器在名称之后没有其他说明)。
可能作者错误地在 2.5 规范中遗漏了特征抽象符号。
抽象操作当然可以具有任何可见性类型。
当然,只有当它包含的分类器(在你的情况下是类)也是抽象的时,操作才可能是抽象的。
没有能见度的种类
一般来说,UML 中的可见性类型是可选的,即您可以简单地省略它。只需考虑到 UML 是一个模型,因此它实际上可以忽略一些不相关的元素,或者可以在建模的后期指定它们。在 UML 中不使用任何可见性类型不允许您对它的最终可见性类型做出任何假设。
另一方面,如果在实际代码中您不使用可见性类型规范(如果完全允许),则存在一些默认行为。例如
等等。
关于class - 我们如何在uml类图中绘制抽象方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40253253/