generated at
PlantUML クラス図

定義
class.puml
@startuml class クラス名 interface インターフェース名 enum 列挙名 @enduml

関係
長くすれば線を長くすることができる
以下は一例
関連
-- で定義
class-association.puml
@startuml class クラス1 class クラス2 クラス1 -- クラス2 @enduml
集約
o- で定義
class-aggregation.puml
@startuml class クラス1 class クラス2 クラス1 o-- クラス2 @enduml
コンポジション
*- で定義
class-composition.puml
@startuml class クラス1 class クラス2 クラス1 *-- クラス2 @enduml

多重度
線の定義の前や後ろに定義することで多重度を定義できる
<クラス名> "<多重度>" <関係記号> "<多重度>" <クラス名>
class-multi.puml
@startuml class クラス1 class クラス2 '関係 クラス1 "1" -- "1..*" クラス2 @enduml

関係ラベル
関係に関する記述のあとに、コロンでクラス同士の関係ラベルを定義できる
<クラス名> "<多重度>" <関係記号> "<多重度>" <クラス名> : <関係>
class-relation-label.puml
@startuml class クラス1 class クラス2 クラス1 "1" -- "1" クラス2 : 関係 @enduml

方向を指定
関係の前か後ろに < > をつけると方向を指定できる
class-relation-label-allow.puml
@startuml class クラス1 class クラス2 クラス1 "1" -- "1" クラス2 : 関係 > @enduml

メソッド、フィールド
クラス名のあとにコロンを付けてメソッドやフィールドを記述する
() をつけるとメソッド扱い、付けない場合はフィールド扱いになる
class-method-field.puml
@startuml class クラス1 クラス1 : hoge クラス1 : fuga() @enduml
中括弧内に記述する方法もある
class-in.puml
@startuml class クラス1 { hoge fuga() } @enduml

{method} {field} 修飾子を指定すると、強制的にメソッドやフィールドとして指定できる
class-modifier.puml
@startuml class クラス1 { {field} フィールド (強制) {method} メソッド } @enduml

アクセス修飾子
メソッドやフィールドの前に記号を定義すればアクセス修飾子を指定できる
class-access.puml
@startuml class クラス1 { +public #protected ~package private -private +public() #protected() ~package private() -private() } @enduml
なお、これらの記号表示は次の記述でオフにすることができる
skinparam classAttributeIconSize 0
class-access-skinparam.puml
@startuml skinparam classAttributeIconSize 0 class クラス1 { +public #protected ~package private -private +public() #protected() ~package private() -private() } @enduml

静的・抽象修飾子
{static} {abstract} で静的、抽象の修飾子を付けられる
メソッド及びフィールドで指定できる
class-static-abstract.puml
@startuml class クラス1 { {static} 静的 {abstract} 抽象 } @enduml

パッケージ
package でパッケージを指定できる
パッケージは入れ子にできる
class-package.puml
@startuml package パッケージ { class クラス1 { } class クラス2 } @enduml

パッケージは複数定義でき、パッケージ外から関係線を定義できる
その場合は後の方に定義を書く
class-package-multi.puml
@startuml package パッケージ1 { class クラス1 class クラス2 } package パッケージ2 { class クラス3 class クラス4 クラス1 -- クラス3 } @enduml

関連クラス
関連クラスを定義することができる
class-relation-class.puml
@startuml class クラス1 class クラス2 クラス1 "1..*" - "1..*" クラス2 (クラス1, クラス2) .. 中間クラス class 中間クラス { メソッド() } @enduml

今回紹介した内容はほんの一部
詳細はPlantUMLのドキュメントサイトを参照。