Java – Private nested Java class in UML diagram

class-diagramjavanested-classuml

I have a question regarding UML. I have a class which simply contains an inner class with the private access modifier – cannot be accessed from anywhere else… Normally in order to present an inner class relation I can use a (+) relation like here (InnerOddIterator):

enter image description here

(taken from http://www.uml-diagrams.org/nested-classifier.html)

I have not found anywhere any information about how can clearly emphasize that this class is private. Do you know if such a method exist at all? If yes I'll be grateful you give me some link here or something?

Just to keep things clear, a sample code:

public class DataStrucure {
     // fields, methods, etc
     private class InnerOddIterator{
          // ... 
     };
}

Best Answer

From UML point of view. If classifier (Class also) is nested in other class, nesting class plays role of namespace. In this case nested classes are hidden (private) in context namespace. it means, your diagram implicitly defines private inner class definition.

here is part of definition from UML Superstructure section structred classifiers:

"A class acts as the namespace for various kinds of classifiers defined within its scope, including classes. Nesting of classifiers limits the visibility of the classifier to within the scope of the namespace of the containing class and is used for reasons of information hiding. Nested classifiers are used like any other classifier in the containing class."