2

在 Java 中,我们有一些修饰符:protected, public, private. 在 UML 中,它们分别是#+-

我的问题是,这个~符号在 UML 中是什么意思?它在Java、C++中有什么意义吗?

4

2 回答 2

7

表示package visibility, 相当于 Java 中的默认访问。C++ 中没有类似物。

于 2012-09-13T08:30:25.503 回答
0

可见性类型的 UML 含义在 UML 上层结构文档中 VisibilityKind 类的描述中给出(当前 v2.4.1 文档中的第 7.3.56 节可在http://www.omg.org/spec/UML/2.4 .1 )。

包访问~

包元素由不是包的名称空间拥有,并且对于与其拥有的名称空间位于同一包中的元素可见。只有不属于包的命名元素才能标记为具有包可见性。任何标记为具有包可见性的元素对最近的封闭包中的所有元素都是可见的(假设其他拥有元素具有适当的可见性)。在最近的封闭包之外,标记为具有包可见性的元素不可见。

这与 Java 中的默认包访问相同(正如 Alexander 所说),但请注意,UML 受保护的访问#一样,因为在 Java 中,受保护的和子类都可以访问(参见,例如,这个问题)。UML 定义是

受保护元素对与拥有它的命名空间有泛化关系的元素可见。

关键原则是 UML 概念是独立于语言的,尽管很明显它们被设计为与实际编程语言中的思想相关。

于 2014-06-17T10:57:37.647 回答