UMLクラス表記
クラスは状態のカプセル化という概念を表す(属性)および振る舞い(操作)。各属性には型がある。各操作にはシグネチャ. クラス名は唯一必須な情報.

カプセル化とはデータ隠蔽の原則である:オブジェクトはそのデータを外部からのアクセスから隠し、外部のエンティティがオブジェクトのメソッドを呼び出すことでデータを操作することを許可する。
クラスの要素がどの程度カプセル化されるかは、その要素の可視性レベルによる。プロパティまたは操作の可視性は、他のクラスのオブジェクトがそのプロパティまたは操作を「見える」かアクセスできるかを指定する。
UMLは以下の4つの可視性レベルをサポートしている:
クラス内の属性または操作の名前の前に配置される文字 ~、+、#、および – は、その可視性を示す。
- パッケージ可視性(チルダ ~ で表される)は、同じパッケージ内のクラスからの任意のオブジェクトが、指定されたクラスを参照および使用できることを意味する。
- 公開可視性(+)は、任意のクラスからの任意のオブジェクトが、指定された属性または操作を使用できることを意味する。
- 保護可視性(#)は、指定されたクラスのサブクラス(すなわち階層の下位にあるクラス)からのオブジェクトのみが、属性または操作にアクセスできることを意味する。
- 非公開可視性(-)は、クラス自身のオブジェクトのみが、属性または操作を使用できることを意味する。
以下の図は、例示的な属性および操作の可視性修飾子を示している。

