オブジェクト指向プログラミング 【OOP】 Object Oriented Programming
概要
オブジェクト指向プログラミング(OOP)とは、コンピュータプログラムの構造、構成法の一つで、関連するデータの集合体と、それを操作する手続きを「オブジェクト」(object)と呼ばれるひとまとまりの単位として一体化し、オブジェクトの組み合わせとしてプログラムを記述する手法。オブジェクト指向プログラミングではオブジェクトの定義と、オブジェクト間の関係、相互作用を記述することによりプログラムを構築していく。オブジェクトにはそれぞれ固有のデータ(属性/プロパティ)と手続き(メソッド)があり、外部からのメッセージを受けてメソッドを実行し、データを操作する。オブジェクトに付随するデータの操作は原則としてすべてオブジェクト中のメソッドによって行われる。
オブジェクトは外部に公開されたメソッドにより機能を提供する。内部の状態を表す変数なども、外部からの参照・操作が必要なものだけが専用の手続きによってアクセス可能となり、それ以外は外から見えない存在となる。
このように、関連するデータと手続きを一つの単位にまとめることを「カプセル化」(encapsulation)、外部に対して必要な情報や手続きのみを提供することを「情報隠蔽」(information hiding)という。外から直に参照や操作をする必要のない内部の状態や構造は秘匿される。
主流のクラスベースのオブジェクト指向プログラミングでは、オブジェクトの雛形を「クラス」(class)として記述し、これをプログラムの実行時に「インスタンス」(instance)として実体化し、データの保存や操作を行う。
あるクラスを元に一部の振る舞いを改変したり新しい機能を追加した別のクラスを作成する「継承」(inheritance)を活用することで、ライブラリや既存のプログラムから必要な機能を流用し、足りない部分だけ新たに記述するといったスタイルで開発を進めることができる。
派生したクラスでは既存のメソッドの振る舞いを必要に応じて改変することができ、外部から同じメソッドを呼び出した際に各オブジェクトがそれぞれ自らに適したコードを実行してくれる。このような性質を「ポリモーフィズム」(polymorphism/多態性)という。
オブジェクト指向によるソフトウェア開発は、異なるプログラムを組み合わせたり、後で部分的に再利用したりするのが容易になるという特徴があり、現代では多くのプログラミング言語にオブジェクト指向的な記述を可能にする仕様が取り入れられている。オブジェクト指向を主要な言語仕様としているものは特に「オブジェクト指向プログラミング言語」(オブジェクト指向言語)と呼ばれることもある。
関連用語
他の辞典による解説 (外部サイト)
- ウィキペディア 「オブジェクト指向プログラミング」
- MDN Web Docs 用語集 「オブジェクト指向プログラミング」
- JIPDEC 情報ライブラリー 用語集 「オブジェクト指向プログラミング」
- TechTerms.com (英語) 「OOP」
- PC.net Computer Glossary (英語) 「OOP」
- WhatIs.com (英語) 「OOP」
- Techopedia (英語) 「Object-Oriented Programming」
- Gartner Information Technology Glossary (英語) 「Object-oriented Programming」
- PC Magazine (英語) 「OOP」
この記事を参照している文書など (外部サイト)
- 立命館大学イノベーション・マネジメント研究センター「自動販売機メーカーのソフトウェアオフショア開発
」(PDFファイル)にて引用 (2010年1月)
- 国土交通省 都市交通調査・都市計画調査「都市計画GIS導入ガイダンス
」にて参照 (2005年3月)