「オブジェクト指向」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
imported>Administrator
(ページの作成:「'''オブジェクト指向'''(Object Oriented)とは、主にソフトウェア設計開発における考え方のひとつ。 近年では「...」)
 
 
(4人の利用者による、間の9版が非表示)
1行目: 1行目:
'''オブジェクト指向'''(Object Oriented)とは、主に[[ソフトウェア]]の[[設計]]や[[開発]]における考え方のひとつ。
+
'''オブジェクト指向'''([[英語]]:Object Oriented)とは、主に[[ソフトウェア]]の[[設計]]や[[開発]]における考え方のひとつ。大きな意味での[[デザインパターン]]である。
  
近年では「オブジェクト指向」というと[[C++]]、[[Java]]、[[C#]]、[[Ruby]]、[[PHP]]などの「[[オブジェクト指向プログラミング言語]]」が世の大半を占めている関係でイコールのように言われることも多いが、あくまで物事の考え方であり、[[プログラミング言語]]に限ったものではない。たとえば、最近ではあまり見かけなくなったが、医療分野で使われているDICOM規格をはじめ、1980年代ごろにはオブジェクト指向規格書なるものも大量に存在した。
+
== 概要 ==
 +
近年では「オブジェクト指向」というと[[C++]]、[[Java]]、[[C Sharp|C#]]、[[Ruby]]、[[PHP]]などの「[[オブジェクト指向プログラミング言語]]」、およびそれらを用いた「[[オブジェクト指向プログラミング]]」が世の大半を占めている関係で、まるでイコールのように言われることも多いが、あくまで物事の考え方であり、[[プログラミング言語]]に限ったものではない。
 +
 
 +
たとえば、最近ではあまり新規では見かけなくなったが、[[medicalware:医療|医療]]分野で使われている[[medicalware:DICOM規格|DICOM規格]]をはじめ、[[UNIX]]や[[Linux]]で今なお使われている[[X Window System]]の[[仕様書]]など、1980年代ごろにはオブジェクト指向規格書やオブジェクト指向仕様書なるものも大量に存在した。
  
 
オブジェクト指向とは、たとえば[[ゲーム]]に登場するキャラクターに例えると、体力や魔力、所持アイテムといった値([[変数]])と、移動や会話、攻撃などの行動([[メソッド]])をもっているが、これらの値や行動をプログラム上でバラバラに管理しては[[保守性]]が悪いので、ある一定の「物(オブジェクト)」という単位にまとめて管理しましょう、という考え方のことである。
 
オブジェクト指向とは、たとえば[[ゲーム]]に登場するキャラクターに例えると、体力や魔力、所持アイテムといった値([[変数]])と、移動や会話、攻撃などの行動([[メソッド]])をもっているが、これらの値や行動をプログラム上でバラバラに管理しては[[保守性]]が悪いので、ある一定の「物(オブジェクト)」という単位にまとめて管理しましょう、という考え方のことである。
  
なお、あくまでオブジェクト「指向」であり、オブジェクト「絶対主義」ではない点に注意すること。たとえば、[[オブジェクト指向プログラミング言語]]であれば「オブジェクト指向的な考え方に傾向している(最適化された)プログラミング言語」という意味であり、必ずしもオブジェクト指向の考え方に沿った書き方をしなければならないわけではなく、[[静的メソッド]]および[[静的変数]]ばかりを使い[[手続き型プログラミング言語]]と化すことも可能であり、また[[関数型プログラミング言語]]のような記法も可能、もしくは混在を前提としている[[プログラミング言語]]も多い。
+
なお、あくまでオブジェクト「指向」であり、オブジェクト「絶対主義」ではない点に注意すること。たとえば、[[オブジェクト指向プログラミング言語]]であれば「オブジェクト指向的な考え方に傾向している(最適化された)[[プログラミング言語]]」という意味であり、必ずしもオブジェクト指向の考え方に沿った書き方をしなければならないわけではなく、[[静的メソッド]]および[[静的変数]]ばかりを使い[[手続き型プログラミング言語]]と化すことも可能であり、また[[関数型プログラミング言語]]のような記法も可能、もしくは混在を前提としている[[プログラミング言語]]も多い。
 +
 
 +
近年では「オブジェクト指向は悪である」という思想のもと、[[関数型プログラミング言語]]が勢力を増している。
  
 
== 関連項目 ==
 
== 関連項目 ==
* [[クラス]] - オブジェクトの設計図
+
* [[オブジェクト指向]]
* [[インスタンス]] - オブジェクトの実体
+
** [[クラス・ベース・オブジェクト指向]]([[Class Based Object Oriented]])
 +
*** [[クラス]] - オブジェクトの設計図
 +
*** [[インスタンス]] - オブジェクトの実体
 +
** [[プロトタイプ・ベース・オブジェクト指向]]([[Prototype Based Object Oriented]])
 +
* [[オブジェクト指向プログラミング]]
 +
* [[オブジェクト指向プログラミング言語]]
 +
* [[オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れない。]]
  
 
== 参考文献 ==
 
== 参考文献 ==
<references/>
+
{{reflist}}
== 外部リンク ==
 
  
 
{{stub}}
 
{{stub}}

2014年3月1日 (土) 10:48時点における最新版

オブジェクト指向英語:Object Oriented)とは、主にソフトウェア設計開発における考え方のひとつ。大きな意味でのデザインパターンである。

概要[編集 | ソースを編集]

近年では「オブジェクト指向」というとC++JavaC#RubyPHPなどの「オブジェクト指向プログラミング言語」、およびそれらを用いた「オブジェクト指向プログラミング」が世の大半を占めている関係で、まるでイコールのように言われることも多いが、あくまで物事の考え方であり、プログラミング言語に限ったものではない。

たとえば、最近ではあまり新規では見かけなくなったが、医療分野で使われているDICOM規格をはじめ、UNIXLinuxで今なお使われているX Window System仕様書など、1980年代ごろにはオブジェクト指向規格書やオブジェクト指向仕様書なるものも大量に存在した。

オブジェクト指向とは、たとえばゲームに登場するキャラクターに例えると、体力や魔力、所持アイテムといった値(変数)と、移動や会話、攻撃などの行動(メソッド)をもっているが、これらの値や行動をプログラム上でバラバラに管理しては保守性が悪いので、ある一定の「物(オブジェクト)」という単位にまとめて管理しましょう、という考え方のことである。

なお、あくまでオブジェクト「指向」であり、オブジェクト「絶対主義」ではない点に注意すること。たとえば、オブジェクト指向プログラミング言語であれば「オブジェクト指向的な考え方に傾向している(最適化された)プログラミング言語」という意味であり、必ずしもオブジェクト指向の考え方に沿った書き方をしなければならないわけではなく、静的メソッドおよび静的変数ばかりを使い手続き型プログラミング言語と化すことも可能であり、また関数型プログラミング言語のような記法も可能、もしくは混在を前提としているプログラミング言語も多い。

近年では「オブジェクト指向は悪である」という思想のもと、関数型プログラミング言語が勢力を増している。

関連項目[編集 | ソースを編集]

参考文献[編集 | ソースを編集]