Professional Documents
Culture Documents
class name
An enum
attributes super class values
methods
A triangle arrow indicates
constructor that one class
(no return type) extends another
An interface
visibility modifier sub class
- private
+ public The lollipop notation (…or the dashed arrow)
# protected indicates that a class
realises (aka implements)
an interface
static modifier
an underlined attribute or open = aggregation shaded = composition
method indicates that the
(the part exists without the whole) (the part cannot exist without the whole)
member is static
A cross inside a circle indicates a nested class (or nested enum / interface)
A box with a tab in the top-left corner indicates a Java package. You can use a straight line connector to indicate association (e.g. in this case, ClassA and ClassB might
Classes inside the box are part of the package. call each other), or a directional arrow if that association is one way (e.g. ClassB calls ClassC, but
ClassC does not ClassB). You can also label any line to describe the relationship in more depth.
calls
You can label lines using numbers to describe cardinality. Some common cardinality options…
Version 1.2, February 2021 © Sarah Clinch 0…1 Zero or one.
Licensed under Creative Commons Attribution-ShareAlike (CC By-SA) 1...* At least one.
1 8 * Zero or more.
https://creativecommons.org/licenses/by-sa/4.0/