カプセル化 wikipedia|無料辞書
カプセル化(カプセルか、)とは、
オブジェクト指向を構成する概念の一つ。オブジェクト内部のデータを隠蔽したり(データ隠蔽)、オブジェクトの振る舞いを隠蔽したり、オブジェクトの実際の型を隠蔽したりすることをいう。データ隠蔽と勘違いされやすいが、データ隠蔽はカプセル化の具体例の1つにすぎず、同一のものではない。
(やや人工的ではあるが)データ隠蔽の例として、色を表すオブジェクトを考えてみる。
カプセル化の第一の利点は変更に対する耐久性である。いま色の内部表現が
RGB (
光の三原色) で保持されているとして、これが何らかの都合で
CMYK (色の三原色) に変更されたとする。外部のプログラムがデータ内部に直接アクセスを行っていた場合、このデータにアクセスしていたすべての箇所を同時に変更しなければならない。しかし公開メソッドを用いていれば、変更は内部表現から外部表現への公開メソッド内のみで済み、変更の影響を局所にとどめる事ができる。
第二の利点は概念の抽象化である。そもそも「色」という概念にとって、その内部表現がRGBであるかCMYKであるかは主要な問題ではなく、必要なら望みの形式がとりだせる抽象的な「色」であることが望ましい。加えて、その他の表現形式が追加されたとしても「色」の意味は変化するべきではない。このように、できるだけ形式と意味を分離する手段としてカプセル化は有効である。
◆ 例
以下のようなクラスがあったとき、
class NonEncapsulatedClass
public int getX()
-->
このクラスを外部から利用するには
NonEncapsulatedClass nec = new NonEncapsulatedClass();
とすることでインスタンスを生成し、
System.out.println(nec.x);
とすることでNonEncapsulatedClassクラスのpublicなフィールドxにアクセスできコンソールに実行結果として100と表示することができる。
また、getX()メソッドを使って
System.out.println(nec.getX());
とすることでもフィールドxにアクセスし同じ実行結果を返すことができる。
また、 publicな変数なため当然、
nec.x = -20;
System.out.println(nec.x);
とすることでフィールド値を100から-20に変えて表示することもできる。
このクラスはフィールド変数xがpublicになっているため簡単にxにアクセスでき、
簡単にデータを変えることができてしまい、カプセル化されていない。
ここで上記のクラスを以下のように変更すると
public final class EncapsulatedClass
public int getX()
public void setX(int x) else if( x > 200) else
-->
-->
このクラスを他のクラスから呼び出すとき
System.out.println(nec.x);
としただけでコンパイルエラーが発生する。フィールド変数xはアクセス権がprivateなので
同一クラス内からしかアクセスできない。それに違反しているためこの時点でコンパイルエラーとなる。
ここではgetX()メソッドを使って間接的にしかフィールド変数にアクセスすることができない。
System.out.println(nec.getX());
このxを以下のようにして変更しようとすると、
nec.x = -20;
この時点でもコンパイルエラーが発生する。
ここでフィールド変数xを変更するには、フィールド変数はprivateになっており、
クラスの修飾子にはfinalがついているため継承が禁止されておりサブクラスからフィールド変数にアクセスすることもできない。
ここではsetX(int x)メソッドを使わなくてはxにアクセスしてxの値を変更することはできない。
では、
ここでsetX(int x)を以下のように実行したらどうなろうだろうか。
nec.setX(-20);
プログラムソースコードのコンパイルは通る。しかし実行時に
ArithmeticException例外が生じてプログラムが終了してしまうだろう。
なぜならそのようにプログラムされているからだ。
同様に
nec.setX(201);
としてもArithmeticException例外が生じて終了してしまうだろう。
このようにフィールド変数xに代入できる数値範囲を計器やバルブの調節ツマミの安全弁のように限定したいとき、
安全のため、セキュリティのため、不用意にこの変数に特定の値を入れたくないときカプセル化は役立つのである。
◆ 関連項目
・カプセル化 page1
■カプセル化を他のサイトで調べる
@[カプセル化]暇つぶしマスター
A[カプセル化]性病マスター
B[カプセル化]ダイエットNAVI
C[カプセル化]価格比較マスター
D[カプセル化]肛門科マスター
E[カプセル化]産婦人科科マスター
F[カプセル化]結婚情報マスター
■派遣job-LINK関連検索
■派遣job-LINKWikipedia情報
おすすめサイト
■ダイエット
美容・ダイエットならオマカセ!ダイエットNAVI
■性病
性病?お悩み・病院検索は性病マスター
■暇つぶし
いま、ヒマ?暇つぶしマスターで暇つぶし★
■価格比較
気になる商品の価格を比較!価格比較マスター
■懸賞
カンタン応募で豪華商品が当たる!アタックchance!
■バイト
駅チカバイトなら楽ラクバイト.com
■求人
地域を選んでバイト、仕事を探せる!!バリバリ仕事!.com
■アルバイト
バイトをこだわり条件で探す!こだわりキャリア.com
■求人情報
自分に合ったバイト探し★Myピッタリ仕事.com
■バイト
"資格"でバイト探し!天職さがそ!.com
■バイト
いいバイト、あるある!aruアルバイト.com
■懸賞
アタックchanceで懸賞チャレンジ!
■産婦人科
病院探し!病気相談なら産婦人科マスター
■出産
妊娠!出産!育児!赤ちゃんマスターでお悩み解決!
■外為
外為・為替レートをチェック!外為マスター
■結婚
結婚マスター!結納・両親・マリッジブルーノお悩みに…
■先物
先物・取引!詳しくなる!先物マスター
■資格
資格!キャリアアップ!資格GETマスター★
■小説
小説・書籍ならオマカセ!小説マスター
■スポーツ
スポーツ!健康!デトックス!スポーツマスターにオマカセ!
■葬儀
お葬式・葬祭のことなら・・・葬儀マスター
■痩身
ダイエット・デトックス・痩身!スリムGETマスター
■脱毛
パーフェクトBODY目指せ!脱毛マスター
■着うた
最新!人気!定番!うたマスターで着うたCHECK!
■デコメ
キラ系かわいいデコメCHECK!デコメマスター
■転職
履歴書・マナー・転職テク!就職情報なら転職マスター
■バイク
ハーレー!改造!バイクマスターにオマカセ!
■派遣
派遣!転職!キャリアアップ!転職マスター
■ペット
カワイイ犬・猫を飼いたい!ペットマスター
■豊胸
薄着の季節…お悩み解決!豊胸マスター
■包茎
包茎のお悩みなら…包茎マスター
■レシピ
今晩のおかず…料理・レシピならレシピマスター
■モバグラMIXの人気キーワード
モバグラMIXの人気キーワード一覧
■外為
外為情報をいち早く!外為LINK
■求人
転職・就活なら求人LINKにオマカセ!
■金融
金融業界の勉強するなら!金融LINK
■車
TOYOTA!HONDA!BMW!車のコトなら車LINK
■モバグラMIXの人気キーワード2
モバグラmixの人気キーワード2
■モバグラMXIの人気キーワード3
モバグラMIXの人気キーワード3
■モバグラMIXの人気キーワード4
モバグラMIXの人気キーワード4
■モバグラMIXの人気キーワード5
モバグラMIXの人気キーワード5
■モバグラMIXの人気キーワード6
モバグラMIXの人気キーワード6
■モバグラMIXの人気キーワード7
モバグラMIXの人気キーワード7
■モバグラMIXの人気キーワード8
モバグラMIXの人気キーワード8
■モバグラMIXの人気キーワード9
モバグラMIXの人気キーワード9
■モバグラMIXの人気キーワード10
モバグラMIXの人気キーワード10
■モバグラMIXの人気キーワード11
モバグラMIXの人気キーワード11
■モバグラMIXの人気キーワード12
モバグラMIXの人気キーワード12
■モバグラMIXの人気キーワード13
モバグラMIXの人気キーワード13
■モバグラMIXの人気キーワード14
モバグラMIXの人気キーワード14
■モバグラMIXの人気キーワード15
モバグラMIXの人気キーワード15
■モバグラMIXの人気キーワード16
モバグラMIXの人気キーワード16
■モバグラMIXの人気キーワード17
モバグラMIXの人気キーワード17
■車査定
車査定.com
■献立レシピ1
レシピが月額99円
■献立レシピ2
レシピが月額99円
~派遣JOB-LINK.com [05/22update] トップへ
(C)派遣JOB-LINK.com