A UML class is one of the key building blocks to create UML class diagrams.
It is represented as a card with three sections:
Example of a UML class:
classDiagram
class Dog {
+String name
+int age
+void Bark()
}
Class Name
Defines the class. Abstract Classes have italicised class names.
UML Attributes
A UML attribute must be defined with a name, and can have optional properties
| Property | Syntax | Example |
|---|---|---|
| Name | ||
| Data Type | Name: [Data Type] | |
| Initial value | Name: datatype = [Initial val] | |
| Privacy/Visibility Modifier | [Privacy symbol] Name ...+PublicVar#ProtectedVar | +: Public ~: Default #: Protected -: Private |
| Multiplicity/Count | Name: Type[Multiplicity]in some cases Name[Multiplicity]: Type is used | = Finite = Finite Range Unknown Range = Unknown Range (0+) |
| Static | [Underlined] |
UML Diagrams must only use primitive data types
Derived data types must be represented as a Class Relationship as well as the normal text. I.e. if we write
name: CustomString, we also need to show a UML classCustomString, and some relationship between the two.
For example:
classDiagram
class gameObj{
-xPos: double
-yPos: double
-zPos: double = 0.0
-count: int$
}
class Rectangle{
-width: double
-height: double
-x: double = 0.0
-y: double =0.0
}
UML Methods
| Property | Syntax | Example |
|---|---|---|
| Name | [Name]() | |
| Privacy | [Privacy][Name]() | |
| Return type | [Name](): [Type] | |
| Function (Computer Science) parameters | [Name]([Parameters]) | |
| Static | Underline | |
| For example: |
classDiagram
class Cube{
-position[3]: double
-rotation[3]: double
-scale[3]: double
+Resize(newSize[3]: double) void
+Move(newPos[3]: double) void
}