Для закрепления. Если один класс создает (инстанцирует) другой, т.е. в методе класса А создается объект класса Б, то это зависимость со стереотипом.
Да. Причем возможны два варианта (см. рисунок в предыдущем ответе).
В первом варианте имеем зависимость между КЛАССАМИ со стереотип <<instantiate>>.
Во втором имеем зависимость между КЛАССОМ и ОБЪЕКТОМ, а стереотип <<create>> ставим у того метода, который создает объект другого класса.
Вторая нотация (c <<create>>) на практике встречается гораздо реже первой.
Вопрос. Такого класса зависимость возникает только тогда, когда в конструкторе класса-источника происходит создание экземпляров целевого класса? Или это не имеет значения? Главное сам факт, что в каком-то методе класса А создается объект класса Б.
Небольшое отступление, не имеющее сильного отношения к вопросу.
Конструкторы классов редко присутствуют среди методов класса, а если и присутствуют не стоит забывать, что это
статические методы.
Ответ: не имеет значения. Но если исходя из контекста это надо показать - пишите комментарий.
Еще вот возник вопрос.
Бывает, что в определении одного класса мы определяем какой-то другой класс. Ну на подобии объявления и описани функции внутри другой функции. При этом ясно, что внутреняя функция имеет локальную видимость и реализуется только в пределах внешней функции. Как я понимаю также происходить и с внутренним классом.
Правда я не совсем понимаю зачем это нужно и какое дает преимущество и когда, но такое возможно. Каким образом изображается этот случае на диаграммах UML? С помощью связи nested?
Между классами такое отношение показывается как на прикрепленном рисунке. Для меня это отношение - namespace, но думаю, что под nested понимали тоже самое.
Отношение вложенности между функциями невозможно показать (кроме как в комментарии).
О применении вложенных классов советую поговорить со знакомыми программистами на Java и спросить как они оформляют обработчики событий от GUI элементов. Какая-то часть респондентов ответит, что через вложенные классы.