「クラスベース」の版間の差分

削除された内容 追加された内容
編集の要約なし
タグ: Refタグつき記述の除去 ビジュアルエディター
8行目:
 
== 特徴 ==
クラスベースとは、その名の通り[[クラス (コンピュータ)|クラス]]を用いることを中心にした[[オブジェクト指向プログラミング]](OOP)を意味する。クラスは変数と関数をまとめた機能である。クラスに内包される変数はフィールド、関数はメソッド、双方を合わせてメンバと呼ばれることが多く本稿でもこれに従う。同様に変数と関数をまとめている機能である[[モジュール]]とクラスの違いを知ることはOOPを理解する上でも重要になる。モジュールとクラスで共通するものに情報隠蔽がある。モジュール内部に隠蔽する変数/関数と、外部に公開する変数/関数を設定することを情報隠蔽と呼ぶ。モジュールでは自身がアクセスするモジュールを明確に直指名するのに対し、クラスではパブリック/パッケージ/サブ派生クラス群といったスコープの策定のみに留まる。これはモジュールを変数と関数を具体的にした構成体と見ているのに対し、クラスを基本的には抽象体として見ていることの表われである。この抽象(''abstraction'')という考え方の有無がモジュールとクラスの分水嶺になっている。
 
抽象化は変数、関数、クラスのいずれもが対象になる。変数の抽象化は同じクラスにある関数を通してそれにアクセスすることを指し、その徹底のためにOOPでは専ら変数の情報隠蔽が行われるのでデータ隠蔽とも呼ばれる。関数の抽象化は中間参照を通したアクセスを指しこれは関数ポインタと同義であるが、OOPでは基底抽象クラスと派生実装クラスに分けて抽象クラスにアクセス元中間参照を置き、実装クラスにアクセス先関数実体を置く。これによって中間参照に基底クラスの派生関係という制約を課してまとめることができる。クラスは段階的な抽象化の対象になる。
 
== 来歴 ==