ひとりマーメイド9日目
クラス図1
概要
マーメイドエンジニアのひろきです。こんにちは。
最近流行り(流行らせたい)のマーメイドについて理解を深めていこうと思います。
この記事ではクラス図の記法を紹介します!
↓↓前回の記事はこちら
クラス図ってなんですか!
前回の記事ではシーケンス図の基本構文を紹介しました!
今日はクラス図を見ていきます。クラス図とは一言で言うとオブジェクト指向の設計図です。クラス、メンバ、メソッドおよびこれらの関係を表すことができます。
classDiagram
Animal <|-- Bird
Animal <|-- Fish
Animal <|-- Penguin
Animal : +int age
Animal : +String gender
Animal: +isMammal()
Animal: +born()
class Bird{
+String beakColor
+fly()
}
class Fish{
-int sizeInFeet
+swim()
-Eat()
}
class Penguin{
+bool is_Linux
+run()
+swim()
}
クラス図の見方
クラス図には3つの段があります。上段にはクラスの名前、中段にはメンバ、下段にはメソッドが入ります。
クラスの定義
class
でクラス名を定義して、その下に属性とメソッドを記述します。属性とメソッドの違いは()
の有無です。
クラスの定義には2種類の記法があります。
記法1
クラス名:
に続いてメンバ,メソッドを記述します。
classDiagram
class User
User: +String id
User: +String name
User: +post()
User: +like()
記法2
クラスごとに{}
で囲って属性とメソッドをまとめて記述します。筆者はこっち派です。
classDiagram
class User{
+String id
+String name
+post()
+like()
}
引数と返り値
メソッドの引数と返り値の型を記述することができます。返り値の前にはスペースが必要です。
METHOD(引数) 返り値の型
classDiagram
class User{
+String id
+String name
+post(message) bool
+like(post) bool
}
これ考えた人絶対タイプスクリプターだ
ジェネリック型
~TYPE~
でList<int>
のようなジェネリック型を記述できます。List<List<int>>
のような多重ジェネリックは非対応です。
classDiagram
class User{
+String id
+List~String~ message
+post(List~String~ message) bool
+like(post) List~String~
}
やっぱりタイプスクリプターだろ
アクセス修飾子
メンバ, メソッドにアクセス修飾子をつけることができます。
-
+
Public -
-
Private -
#
Protected -
~
Package
classDiagram
class User{
+String PublicData
-String PrivateData
#String ProtectedData
~String PackagedData
+PublicMethod()
-PrivateMethod()
#ProtectedMethod()
~PackagedMethod()
}
下線,斜体
メンバとメソッドを強調表示することができます。
-
*
斜体 -
$
下線
classDiagram
class User
User: +String id*
User: +String name$
User: +post()*
User: +like()$
関係の定義
矢印でクラス同士の関係を示すことができます。
--|>
<|--
どちらでもokです。
classDiagram
classA --|> classB
classC <|-- classD
デフォルトでは矢印の向きは決まっていません。記述内で宣言した順番でクラスが配置され、それらを線で結ぶという順番で描画が進みます。
矢印の種類
矢印の種類を変えることができます。
- 継承
classDiagram
classA --|> classB
- コンポジット
classDiagram
classA --* classB
- 集約
classDiagram
classA --o classB
- 汎化
classDiagram
classA --> classB
- 関連(実線
classDiagram
classA -- classB
- 依存
classDiagram
classA ..> classB
- 実現
classDiagram
classA ..|> classB
- 関連(点線)
classDiagram
classA .. classB
全8種類です。
まとめ
クラス図の記述について紹介しました!
↓↓次回の記事はこちら!
参考