作成日 2007/1/20
最終更新日 2008/1/27
[ Japanese | English ]

インスタンススコープの操作とクラススコープの操作

 クラス図(※1)では、クラスには操作を定義することが出来ます。操作はインスタンスに属する操作かどうかで2つに分けられます。
 1つがインスタンススコープの操作で、もう一つがクラススコープの操作です。

 このページではインスタンススコープの操作とクラススコープの操作の特徴を説明し、どのような箇所で使用されているかを説明します(※2)。

 注意:このページを理解するにはインスタンススコープの属性とクラススコープの属性について理解している必要があります。

※1:UMLのバージョンは2.0とします。
※2:オブジェクト指向の初心者が初めてjavaでプログラミングすると、大抵、すべての関数にstaticが付いていたりします(※だるまもそうでした。)。
もし、そういうことをしている人は、このページを読んで早く間違いに気づき、同じような間違いを繰り返さないようにして欲しいです。

1.インスタンススコープの操作とは
2.インスタンススコープの操作はどのようなときに作成するか
3.クラススコープの操作とは
4.クラススコープの操作はどのようなときに作成するか
5.参考文献など


1.インスタンススコープの操作とは

 インスタンススコープの操作とは、インスタンス属性に対して何か行うときや、インスタンス属性の情報を取得したりするときに定義する操作のことです。

 とりあえず、次のインスタンススコープの操作の例 を読んだ方が良いと思います。

このページのトップへ

2.インスタンススコープの操作はどのようなときに作成するか

 だるまは、以下のようなときにインスタンススコープの操作を作成します。
  1. 2つ以上ののインスタンススコープの属性を同時に変更したいときや、属性を変更する際にデータチェック(範囲チェック、スレッドセーフ対応等)などをしたい場合、インスタンススコープの属性を読み取り専用にしたい場合、もしくは、後でそのように修正することを想定する場合など。
    (詳細は「カプセル化と属性と操作 」(別ウィンドウが開きます)を参照願います。)
  2. 今のインスタンススコープの属性の値を元に何らかの処理をしたい場合。
    例えばjavaであれば、
     java.io.FileクラスのdeleteメソッドcreateNewFileメソッド
     java.security.MessageDigestクラスのdigestメソッド
    のようなもの。
    エクセルVBAであれば、
     ExcelライブラリのWorkbookクラスのActivateメソッド、Closeメソッド、PrintOutメソッド
     OfficeライブラリのCommandBarButtonクラスのExecuteメソッド
    のようなものです。
    もちろん、他にも、もっといっぱいあります。
このページのトップへ

3.クラススコープの操作とは

 クラススコープの操作とは、クラススコープの属性に対して何か行うときや、属性の値を取得したいときに定義する操作のことです。
 クラス図では、下線を引きます(※1)。
 
 とりあえず、「クラススコープの操作の例」を読んでください。
------
※1:
英語なのでちゃんと理解できないため、間違っているかもしれませんが、UML2.0の仕様書のp671の下のほうに説明が書いてあります。
このページのトップへ

4.クラススコープの操作はどのようなときに作成するか

 だるまは、以下のようなときにクラススコープの操作を作成します。
  1. 2つ以上のクラススコープの属性を同時に変更したいときや、属性値を変更するときにデータチェックをするなど。
    (ほとんどインスタンススコープの操作と同じ理由です。詳細は「カプセル化と属性と操作 」(別ウィンドウが開きます)を参照願います。)
  2. ユーティリティクラスに属する操作を作成するとき。
    ユーティリティクラスとは例えば、java.lang.Mathクラスのようなクラス、VBAであれば、VBAライブラリのDateTimeクラス(DateTimeモジュール)で、ただの関数や定数のみが集められたクラスのことです。
    ユーティリティクラスからはインスタンスは生成されません。
    クラス図ではユーティリティクラスを書くとき、クラス名の上にキーワード<<utility>>をつけます。
このページのトップへ

5.参考文献など

 このページを作成するのに参考にしたページです。
 ただし、だるまは、このページを作成するにあたり、これらのページを100%理解してから作成したわけではない(おいおい。)です。
 間違い(リンク先のページではなく、このページに)があったら、ごめんなさい。

番号

リンク先の名称

リンク先の説明

リンクした日

1 OMG Document -- UML 2.0の仕様書(UML Superstructure Specification, v2.0)がダウンロードできます。(※英語のページです) 2008/1/20
2 概要 (Java 2 プラットフォーム SE v1.4.0) J2SE ver1.4のAPIドキュメントです。 2008/1/20
Prev Up Next  Top
このページのトップへ

このページの利用によって発生した、いかなる損害について、このホームページの作成者は責任を負いません。
このページの間違いや嘘を見つけた方、このページに書いて欲しい情報がある方はメールをお願いします。

Microsoft 、Windows 、Visual Basic および Excel は米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
ここではExcel® をエクセル、Visual Basic® for Applications をVBAと表記する場合があります。
Mac 、Mac OS 、Mac OS X は米国Apple Computer,Inc.の登録商標または商標です。
OMG、UML、Unified Modeling Languageは、Object Management Groupの商標または登録商標です。
JavaおよびJavaに関する商標は、米国およびその他の国における米国Sun Microsystems, Inc.の商標または登録商標です。
その他、社名および商品名、システム名称などは、一般に各社の商標または登録商標です。

このホームページの作成者はこれらの会社とはいっさい関係がありません。