Символы в UML, C++, Java

В Java у нас есть несколько модификаторов: protected, public, private, В UML они #, +, -соответственно.

Мой вопрос в том, что ~ символ означает в UML? И имеет ли это какое-то значение в Java, C++?

2 ответа

Решение

Это значит package visibility, что эквивалентно доступу по умолчанию в Java. Нет аналога в C++.

Значение UML для типов видимости дано в описании класса VisibilityKind в документе UML Superstructure (раздел 7.3.56 в текущем документе v2.4.1, доступном по адресу http://www.omg.org/spec/UML/2.4.1).

Доступ к пакету ~ является

Элемент пакета принадлежит пространству имен, которое не является пакетом, и является видимым для элементов, которые находятся в том же пакете, что и его собственное пространство имен. Только именованные элементы, которые не принадлежат пакетам, могут быть помечены как имеющие видимость пакета. Любой элемент, помеченный как имеющий видимость пакета, виден всем элементам в ближайшем включающем пакете (при условии, что другие владеющие элементы имеют надлежащую видимость). Снаружи ближайшего вмещающего пакета элемент, помеченный как имеющий видимость пакета, не виден.

Это то же самое, что доступ к пакету по умолчанию в Java (как сказал Александр), но обратите внимание, что защищенный доступ UML # это не то же самое, поскольку в Java защищенный доступен как для пакета, так и для подклассов (см., например, этот вопрос). Определение UML

Защищенный элемент виден элементам, имеющим отношение обобщения к пространству имен, которому он принадлежит.

Ключевой принцип заключается в том, что концепции UML не зависят от языка, хотя, очевидно, они предназначены для связи с идеями в реальных языках программирования.

Другие вопросы по тегам