@startuml
class ClassName {
-privateMember: int
#protectedMember: int
~packagePrivateMember: int
+publicMember: int
-privateMethod(): void
#protectedMethod(): void
~packagePrivateMethod(): void
+publicMethod(): void
}
@enduml
@startuml
class Human {
+useComputer(computer: Computer): void
}
interface Computer {
+turnOn(): void
}
class Phone implements Computer {
+turnOn(): void
}
Human ..> Computer
@enduml
TypeScript
1 2 3 4 5 6 7 8 910111213
classHuman{useComputer(computer:Computer):void{computer.turnOn();}}interfaceComputer{turnOn():void;}classPhoneimplementsComputer{turnOn():void{console.log("Phone has been turned on");}}
継承・汎化(Generalization)
汎化とは一方のクラスがもう一方のクラスをより具体化したクラスである場合のクラス間の関係である。
主に継承関係で使うようである。
実線で子から親へ矢印を引く。矢尻は△。
PlantUML
123456
@startuml
class Parent {
}
class Child extends Parent {
}
@enduml
TypeScript
12
classParent{}classChildextendsParent{}
インターフェース・実現・実装(Realization)
点線で具象から抽象へ向くように矢印を引く。矢尻は△。
PlantUML
123456
@startuml
interface IClass {
}
class Class implements IClass {
}
@enduml
TypeScript
12
interfaceIClass{}classClassimplementsIClass{}
抽象クラス/抽象メンバー/静的メンバー
PlantUML
12345678
@startuml
abstract class AbstractClass {
{abstract} abstractMember: int
{static} staticMember: int
{abstract} abstractMethod(): void
{static} staticMethod(): void
}
@enduml