Class Diagram
Experiment syntax may change.
A class diagram in the Unified Modeling Language (UML) is a type of static structure diagram that describes the structure of a system by showing the system's classes, their attributes, operations (or methods), and the relationships among objects. Wikipedia
A simple demo
classDiagram
class Fruit {
float sweetness
-float age
float getAge()
}
class Apple {
}
Fruit <|-- Apple
Fruit <|-- Kiwi
Container "1" *-- "many" Fruit : holds
Define a class
Class members
To declare fields and methods, you can use the symbol : followed by the field's or method's name.
It is also possible to group between brackets {} all fields and methods.
You can write type and name in any order you prefer.
classDiagram
class Fruit {
float sweetness
squeeze()
}
Fruit : getAge(): float
Member visibility
Define member visibility with these symbols. The notaiton is optional but it should be placed before the member.
+public#protected-private~package/internal
Relations between classes
You can define relations between classes using following symbols :
| Type | Description |
|---|---|
<|-- | Inheritance |
*-- | Composition |
o-- | Aggregation |
--> | Association |
-- | Link |
It is possible to replace -- by .. to have a dotted line.
classDiagram classA <|-- classB classC *-- classD classE o-- classF classG <-- classH classI -- classJ classK <.. classL classM <|.. classN classO .. classP
Label on relations
It is possible to add a label on the relation, using :, followed by the text of the label.
Also, you can use double-quotes "" on each side of the relation for cardinality.
classDiagram classA "1" *-- "many" classB : contains classC o-- classD : aggregation classE --> "1" classF