II-14-4. オブジェクト指向の概念

C++プログラミングの前提となるオブジェクト指向の概念について解説する。データ自身だけでなくデータの処理方法まで含めてオブジェクトに全てが属するという根本的な考え方と、各種の用語、型による抽象的なデータ操作などについて説明する。

【学習の要点】

* オブジェクトとは「属性」「操作」「関係」「アイデンティティ」の特性を満たしたものである。

* 同じ特性を持つオブジェクトの集合を抽象化したものを「クラス」といい、クラスに属するオブジェクトの例を「インスタンス」という。

* オブジェクト指向の基本的な技術としては「カプセル化」「継承」「多態性」がある。

図II-14-4. オブジェクト指向の概念

【解説】

1) オブジェクトとは

オブジェクトとは「属性」「操作」「関係」「アイデンティティ」の特性を満たしたものである。

* 属性

オブジェクトは固有の形や性質などを持っている。

* 操作

オブジェクトは固有の振る舞いを持っている。

* 関係

オブジェクトは単独で存在することはなく、必ず他のものと関係を持っている。

* アイデンティティ

オブジェクトは他のものと区別するためのアイデンティティを持っている。

2) クラスとインスタンス

オブジェクトに関連する概念として「クラス」と「インスタンス」がある。

* クラス

オブジェクトの属性や操作の雛形を定義したものをクラスといい、クラスの定義はオブジェクトの集合である内包クラスとオブジェクトの抽象化である外延クラスの2つに分けられる。

* インスタンス

クラスから生成されるオブジェクトの実体のことをインスタンスと呼ぶ。

3) オブジェクト指向

オブジェクト指向では、実現する機能を、個々に属性と操作を持った「オブジェクト」として実装する。

またオブジェクト指向開発とは、オブジェクトの集まりを基本に開発を進める開発手法である。

オブジェクト指向の基本的な要素としては「カプセル化」「継承」「多態性」がある。

* カプセル化

オブジェクト同士の関係動作を、メッセージのみで行い、属性の詳細を隠ぺいすることを、カプセル化といい、他のオブジェクトからの変更を防ぐと共に、オブジェクト内部に変更があった場合でも他のオブジェクトへの影響を抑えることが可能となる。

* 継承

基本オブジェクトの特性を引き継いで派生オブジェクトを定義することを継承という。基本となるオブジェクトから継承したオブジェクトは新しい属性や操作を持つことができる。

* 多様性

基本オブジェクトで定義されている操作を、派生オブジェクトが持っている属性の型に応じて異なる処理が行われるように操作の実装を変化させることを多様性という。

OSS Course Naviのコンテンツは IPA OSS モデルカリキュラムを基としています。

フォーラム会員企業専用

記事配信

コンテンツ配信

ユーザログイン