「オブジェクト指向プログラミング」の版間の差分

削除された内容 追加された内容
35行目:
 
=== カプセル化 ===
任意のデータ(変数、プロパティ、属性、フィールド)群と、それを参照ないし変更に関連するコード(関数、プロシージャ、サブルーチン、メソッド)群をひとまとめにしてオブジェクトとし、オブジェクト内のデータ群は外部からはアクセスできず隠蔽に対して必要とされ、外部公開されたるデータとコードを通してのみアクセス可能にしたを公開する仕組みがカプセル化と呼ばれる。より詳しい解釈については様々だが、オブジェクト指向におけるカプセル化が持つコード、基本的一般内部隠蔽に焦点を当てたパラダイムである。開発規模の拡大に伴い解決の難しいバグ原因の大半は、データの予期せぬ変化メソッド、データ間の予期せぬ不整合であ呼ばれる事が経験則で知られるようになっ多い。ま、オブジェクトで、デザインはデータ構成変えたコードの位置特定最初に決めて、それ容易にする為の手段だった。データ直接参照の禁止は予期せぬデータの読み取りを抑止するだけでく「抽象化」の一手段も兼ねてた。データを読み取し変更す目的ワンク沿ったメソションの仲介コーを置く事で実行環境構成にする変化が基本合わせた柔軟データ表現を可能にした
 
外部公開されないデータとコードは隠蔽される事になり、これは計算機科学上の情報隠蔽または内部隠蔽として定義されている。公開とは該当オブジェクトの外にあるコードから直接アクセスできる事を意味し、隠蔽はその反対でアクセス禁止となる。アクセスとは、データに対しては参照(読み込み)または変更(書き込み)できる事であり、コードに対してはそれを呼び出す事を意味する。より詳しい解釈については様々だが、オブジェクト指向におけるカプセル化は、基本的に内部隠蔽に焦点を当てた考え方である。
カプセル化をより「抽象化」方向へ推し進めたものとして{{仮リンク|プロトコル(OOP)|en|Protocol (object-oriented programming)|label='''プロトコル'''}}(''protocol'')がある。これはオブジェクト内部を全隠蔽し、抽象メソッドをまとめた純粋抽象クラスで表現される[[インタフェース (抽象型)|インターフェース・オブジェクト]]を通してアクセスする仕組みを指した。オブジェクトそのものにワンクッションを置いた制度とも言える。プロトコルはオブジェクトの安全な公開を実現し、共同開発とコンポーネント開発に適したものとされた。[[カプセル化]]では単純にデータアクセスを求める''getter''と''setter''の存在が許容されるが、{{仮リンク|プロトコル(OOP)|en|Protocol (object-oriented programming)|label=プロトコル}}ではそうではない。これが両者の線引きとなる。
 
=== 継承 ===