【发布时间】:2012-09-06 07:17:58
【问题描述】:
在 Java 中,我们有一些修饰符:protected、public、private。在 UML 中,它们分别是#、+、-。
我的问题是,~ 符号在 UML 中是什么意思?而且在Java、C++中有什么意义吗?
【问题讨论】:
标签: java c++ uml public protected
在 Java 中,我们有一些修饰符:protected、public、private。在 UML 中,它们分别是#、+、-。
我的问题是,~ 符号在 UML 中是什么意思?而且在Java、C++中有什么意义吗?
【问题讨论】:
标签: java c++ uml public protected
表示package visibility,相当于Java中的默认访问。 C++ 中没有类似物。
【讨论】:
可见性类型的 UML 含义在 UML 上层结构文档中 VisibilityKind 类的描述中给出(当前 v2.4.1 文档中的第 7.3.56 节可在 http://www.omg.org/spec/UML/2.4.1 获得)。
包访问~是
包元素由不是包的命名空间拥有,并且 对与其拥有的相同包中的元素可见 命名空间。只有不属于包的命名元素可以 标记为具有包可见性。任何标记为具有 包的可见性对最近的所有元素都是可见的 封闭包(假设其他拥有元素具有适当的 能见度)。在最近的封闭包装之外,标记为的元素 因为具有包可见性是不可见的。
这与 Java 中的默认包访问相同(正如 Alexander 所说),但请注意,UML 保护访问 #不相同,因为在 Java 中,protected 可以访问包 以及子类(例如,参见this question)。 UML 定义是
受保护的元素对具有泛化的元素可见 与拥有它的命名空间的关系。
关键原则是 UML 概念是独立于语言的,尽管显然它们的设计目的是与实际编程语言中的想法相关。
【讨论】: