• 3 row arrangement (Class name, Attributes, Methods)
  • An optional 4 row (Responsibilities) can be added to mention what is expected of the class
  • Class name is the only mandatory field
  • Attributes
    • Format β‡’ <access specifier> <attribute name> : <data type>
    • / β‡’ derived attribute, not an actual data member
    • + β‡’ public
    • # β‡’ protected
    • - β‡’ private
    • ~ β‡’ package level visibility
    • Static attributes β‡’ to be underlined
  • Methods,
    • Use the function signature
    • + β‡’ public
    • # β‡’ protected
    • - β‡’ private
    • Static member function β‡’ mention no access specifier
  • If the class name is preceded by <<abstract>>, then it’s an abstract class, (italics were used in older UMLs)

Example,

Sources