UML类图中的'#'符号是什么意思?

89
我在阅读《算法大全》(O'Reilly)时看到了这个类图中的符号。我猜想它意味着成员是受保护的,但我想知道是否有人知道它确切的含义。
5个回答

187

这表示一个类或其他数据类型的受保护成员。

- 表示私有

+ 表示公共

# 表示受保护


1
是的,或者受保护的 '操作'。 - Jayden
1
可见性指示符不仅适用于属性和操作,也适用于关联端点。 - chimp
我看过一些UML图表将f定义为最终函数(不能被覆盖的函数),underlines表示静态函数,以及italicsa表示抽象函数。 - Yzmir Ramirez
如果您不想要修饰符/符号怎么办?只需将其留空即可。 - Vipin Verma
@vipin8169 是的。但是默认的可访问性修饰符是与语言相关的。例如,在Visual Basic中,它是“public”,而在C#中则是“internal”。如果您的图表没有清楚地说明默认的可访问性修饰符是什么,那么最好包括访问修饰符符号。 - Mike Hofer

13

还需添加:

~ 表示包私有(或默认)


8

'#' 表示可见性。在这种情况下,它指的是一个受保护的操作。


请查阅《UML 2.0速查手册》(Dan Pilone, Niel Pitman著,O'Reilly出版社),以获取相关编程信息。 - Jayden
是的,我的术语不够准确,有些马虎。Mike Hofer 的下面这篇帖子使用了“受保护成员”一词。我认为,如果你想完全准确/不偏不倚,你可以说“受保护操作”。 - Jayden
我并不是想要表现得傲慢,如果我的言辞让人有这种感觉,我深表歉意。事实上,该符号不仅适用于操作,也适用于属性,因此其范围更广,我希望能够确保这一点清楚明白。再次道歉,我的本意并非如此粗鲁。 - Mike Hofer
没关系,我也没有这样想。:) 干杯 - Jayden

4

'#' 表示类中属性/方法的可见性为“保护”的行为(类似于公共、私有)。您可以在uml_basic_notations上找到更多相同的内容。


优秀的答案不仅回答了问题,还帮助观众学到更多知识。谢谢! - soMuchToLearnAndShare

3

这意味着它是受保护的,对于一个变量来说,它只能在类和继承类中看到。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接