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