オブジェクト‐しこう〔‐シカウ〕【オブジェクト指向】
オブジェクト指向
別名:OO
【英】object oriented
オブジェクト指向とは、主にソフトウェア開発における考え方の一種で、プログラムを、処理の手順(手続き)ではなく、処理対象(オブジェクト)に着目して記述していく考え方のことである。
オブジェクト指向は、1970年代のオブジェクト指向プログラミング言語の誕生とともに始まった。それまで一般的であった手続き型プログラミングに比べて、オブジェクト指向は、プログラムの部品化やメンテナンスが容易なことから、大規模システム開発をはじめとして標準的なソフトウェア開発の手法として普及していった。
1980年代には、オブジェクト指向言語によるソフトウェアの部品化・再利用が進むと同時に、オブジェクト指向のための方法論も盛んとなった。オブジェクト指向プログラミング(OOP)のためにオブジェクト指向設計(OOD)が誕生し、オブジェクト指向設計のためにオブジェクト指向分析(OOA)が誕生した。
オブジェクト指向にはさまざまな開発方法論があったが、1995年に標準化のための統一方法論が発表された。統一方法論は、結果的に普及しなかったものの、表記方法のみを標準化した統一モデリング言語(UML)が広く用いられるようになった。
オブジェクト指向の特徴としては、おおむね、「カプセル化」、「継承」、「多様性」といった要素を挙げることができる。
「カプセル化」とは、オブジェクトが持つ属性(フィールド)や動作(メソッド)を外部から隠蔽し、必要最低限のインターフェースのみを公開することである。カプセル化を行うことによって、オブジェクトの変更や再利用が容易になる。
「継承」(インヘリタンス)とは、共通の性質(プロパティ)を持ったオブジェクトの集まりを意味するクラスについて、サブクラスがクラスの性質を自動的に受け継ぐこととである。例えば、「動物」-「ほ乳類」-「イヌ」といった階層構造を持ち、「イヌ」を「ほ乳類」のサブクラスとして定義すると、「ほ乳類」の性質を自動的に受け継ぐことになる。継承によってプログラミングの効率化を図ることが可能となっている。
「多様性」(ポリモーフィズム)とは、クラスごとに異なる実装のメソッドを、同じメソッド名で呼び出すことである。例えば、「イヌ」は4本足を交互に動かして、「クルマ」はタイヤを回転させて「走る」が、ポリモーフィズムにより、こうしたクラスごとのメソッドの詳細を意識しないでそのメソッドを呼び出すことが可能となる。
今日、オブジェクト指向は、複雑で大規模なシステム開発にはとんど必要不可欠な手法として利用されている。オブジェクト指向プログラミング言語の主な例としては、Smalltalk、Java、Python、Rubyなどを挙げることができる。
オブジェクト指向
- Object-Orientedのページへのリンク