ピクシブ百科事典

目次[非表示]

概要

オブジェクト指向(object-oriented)とは、ソフトウェア設計の考え方である。元々はプログラミングの手法のひとづだが、のちに拡張されデータベース、モデリング、ユーザーインターフェースなど各方面に適用されるパラダイムとなった。

「カプセル化」、「継承」、「多態性」(ポリモーフィズム)がオブジェクト指向三大要素と言われるが、それらに共通しているのは、データと処理手順を別々に扱っていた従来の標準的な手法に対し、双方をひとまとめにして物事の解析と組み立てを行う点である。

1970年代に開発されたプログラミング言語、Smalltalkがオブジェクト指向プログラミングのはしりだが、当時この考え方は十分に理解されず、流行し定着したのは1990年代になってからである。

この考え方が広まったきっかけは、1980年代にビャーネ・ストロヴストルップが開発した言語、C++と、スティーブ・ジョブズ率いるNeXT社が開発したOS、NEXTSTEPにある。

C++は大規模なソフトウェアの開発に役立つよう、オブジェクト指向に加え手続き型プログラミングの考え方を取り入れ、1990年代においてオブジェクト指向プログラミングを一気にメジャーにした。現在はよりオブジェクト指向プログラミングに適合した設計になっているJavaC#の方が主流となっているが、C++はこれらへの橋渡しの役を果たしたと言える。

NEXTSTEPはObjective-C(C言語とSmalltalk流のオブジェクト指向を融合させた言語)による開発環境を揃えていたのみならず、ユーザーインターフェース、データ管理など全てにおいてオブジェクト指向の考え方を取り入れ、各方面に影響を与えた。同OSは最初のWWWの設計に利用されたほか、世界初のWebアプリケーションサーバWebObjectsを生み出し、現在のインターネットの在り方を決定づけた。現在のmacOSiOSは同OSの直系の子孫である。

オブジェクト指向プログラミング言語

オブジェクト指向三大要素を兼ね備えた言語。

上述のSmalltalk、C++、objcective-C、Java、C#のほか、SwiftPythonJavaScriptRubyKotlin...など、現在広く使われる多くの言語がオブジェクト指向の考え方を取り入れている。...が、純粋なオブジェクト指向と言えるのはSmalltalkとRubyぐらいであり、多くは手続き型、関数型などとのハイブリッド言語(マルチパラダイム言語)である。

また、C言語のようにオブジェクト指向ではない言語も、オブジェクト指向の考え方に基づいた設計に利用されることがある(もちろん、オブジェクト思考言語を使った方がやりやすいが)。

手続き型言語との比較

  • 簡潔に書けることが多い。
  • 数値がカプセル化されているため外部からの変更を制限できる。
  • 大型のプログラムを書きやすく、保守が容易である。


関数型言語との比較

  • 動的な数値、型、配列が使えるため、動的な処理ができ易い。
  • 多重継承でスパゲッティプログラムになる可能性がある。

関連記事

親記事

ソフトウェア そふとうぇあ

兄弟記事

pixivに投稿された作品 pixivで「オブジェクト指向」のイラストを見る

このタグがついたpixivの作品閲覧データ 総閲覧数: 42

コメント