在Java中,我们有一些修饰符:protected
、public
、private
。在UML中,它们分别是#
、+
和-
。
我的问题是,~
符号在UML中是什么意思?它在Java、C++中有什么意义吗?
意思是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(例如,请参阅此问题)。UML的定义是
受保护的元素对具有通用性的元素可见与拥有它的命名空间的关系。
关键原理是UML概念是独立于语言的,尽管它们显然是为了与实际编程语言中的思想相关而设计的。