開発言語が属するプログラミングパラダイムのうち、オブジェクト指向プログラミングは、あるデータとそれを使用するための基本的な操作をひとまとめにした「オブジェクト」の集まりでソフトウエアを表現しようとするのが特徴です。Webシステムや企業の情報システム等で幅広く利用されているJavaをはじめとして、他にも現代的なプログラミング言語の多くがこのパラダイムに属しています。

 オブジェクト指向プログラミングには提唱者が異なる2つの系統がありますが、ここでは現状の主流派であるビャーネ・ストラウストラップ氏が提唱した系統について取り上げます。もう一つの系統であるアラン・ケイ氏が提唱した「メッセージングのオブジェクト指向プログラミング」について知りたい人は「アラン・ケイ」(アスキー)という書籍の「コンピュータ・ソフトウエア」の章を参照してください。

 C++の設計者として知られるストラウストラップ氏は、オブジェクト指向プログラミングの重要な概念として「カプセル化」「継承」「ポリモーフィズム」の三つを挙げています。

「カプセル化」「継承」「ポリモーフィズム」
[画像のクリックで拡大表示]

 カプセル化とは、関連のあるデータとその操作をひとまとめにして、外部から直接内部データを操作することを禁止する代わりに、外部に操作の仕様だけを見せることです。カプセル化のメリットは大きく分けて2つあり、1つめは、オブジェクトを利用する人はその操作の仕様だけを知っていれば、オブジェクト内の操作の実装やデータの内容を知る必要がないことです。

 2つめは、関連する操作がひとまとめになっているので、理解しやすく変更の影響も局所化できることです。カプセル化するひとまとまりの単位のことを「クラス」、クラスの中の操作を「メソッド」、データのことを「フィールド」と呼びます。

 継承は、クラスに階層を持たせ、上位クラスのデータやメソッドを下位クラスが引き継ぐことです。下位クラスでは継承した性質の一部を変更したり追加したりすることができます。上位クラスを「親クラス」と呼び、下位クラスを「子クラス」と呼びます。継承は、全体のほとんどは一緒だけど一部が異なるフィールドとメソッドを何種類も書かなければいけないときに役に立ちます。親クラスに共通的なフィールドとメソッドを書いておき、親クラスを継承した子クラスには異なる部分だけを記述するのです。

この先は日経 xTECH Active会員の登録が必要です

日経xTECH Activeは、IT/製造/建設各分野にかかわる企業向け製品・サービスについて、選択や導入を支援する情報サイトです。製品・サービス情報、導入事例などのコンテンツを多数掲載しています。初めてご覧になる際には、会員登録(無料)をお願いいたします。