平成25年度 秋期 午前Ⅱ 問1
システム要件定義・ソフトウェア要件定義
クラス図に関する問題
UMLを使って図のクラスPを定義した。このクラスの操作のうち,公開可視性(public)をもつものはどれか。
クラスPのクラス図:
┌──────────┐ │ クラスP │ ├──────────┤ ├──────────┤ │ + 操作A │ │ − 操作B │ │ # 操作C │ └──────────┘
- ア全ての操作
- イ操作A
- ウ操作B
- エ操作C
答えと解説を見る
✓ これが正解イ操作A
解説
+記号が付いた操作Aだけが、公開可視性をもちます。
UMLのクラス図では、属性や操作の名前の前に付ける記号で可視性を表します。見分ける軸は、記号と可視性の対応です。+はpublic(公開)で、どのクラスからでも呼び出せます。−はprivate(非公開)で、そのクラスの中からだけ使えます。#はprotected(限定公開)で、そのクラスと、そこから継承したサブクラスから使えます。図のクラスPで+が付いているのは操作Aだけなので、公開可視性をもつ操作は操作Aの一つです。+が公開、−が非公開、#がサブクラスまで、と三つを組にして覚えると取り違えません。
ほかの選択肢はなぜ違うのか
- ア全ての操作:クラスPの三つの操作には、+・−・#と別々の記号が付いています。記号が違えば可視性も違うので、三つとも公開とみなすことはできません。public をもつのは+の付いた一つに限られます。
- ウ操作B:操作Bに付いている−は private を表す記号です。クラスPの内部からしか使えない操作なので、外部のクラスに公開されているとはいえません。
- エ操作C:操作Cの#は protected を表します。クラスP自身と、クラスPを継承したサブクラスからは使えますが、それ以外のクラスには公開されていません。
出典:平成25年度 秋期 システムアーキテクト試験 午前Ⅱ 問1
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)