Wikipedia preview
出典(authority):フリー百科事典『ウィキペディア(Wikipedia)』「2016/02/24 15:00:24」(JST)
[Wiki ja表示]
オブジェクト指向(オブジェクトしこう)とは、オブジェクト同士の相互作用として、システムの振る舞いをとらえる考え方である。英語の object-oriented (直訳は、「対象物志向の」「目的重視の」という意味の形容詞) の日本語訳である。
オブジェクト指向の枠組みが持つ道具立ては、一般的で強力な記述能力を持つ。複雑なシステム記述、巨大なライブラリ(特に部品間で緊密で複雑な相互関係を持つもの)の記述においては、オブジェクト指向の考え方は必須である。
目次
- 1 パラダイムとしてのオブジェクト指向
- 2 オブジェクト指向プログラミングの構成要件
- 3 オブジェクト指向の方式
- 4 オブジェクト指向の名称とメッセージング
- 5 脚注
- 6 関連項目
- 7 外部リンク
パラダイムとしてのオブジェクト指向
オブジェクト指向分析が提唱される以前には、システム分析のレベルにおいては、データ構造を中心としたシステムの分析技法である構造化技法が存在した。
また、プログラミングのレベル (プログラミングパラダイム) では、プログラムの実行の流れを決められた制御構造の組み合わせとして書き下す構造化プログラミングや、カプセル化を促すモジュールプログラミング、多態に対応するデータ指向プログラミングという技法が存在していた。オブジェクト指向手法はそれらを一般化しさらに推し進めたものであるという考え方がある。
オブジェクト指向プログラミングの構成要件
詳細は「オブジェクト指向プログラミング」を参照
オブジェクト指向プログラミングを構成する概念は次のようなものである。
- カプセル化 (情報隠蔽)
- オブジェクトの振る舞いを隠蔽したり、オブジェクト内部のデータを隠蔽したり(データ隠蔽)、オブジェクトの実際の型を隠蔽したりすることをいう。これは古典的な可視性の定義である。
また、オブジェクト指向プログラミングの概念拡大に伴い、必須と表現するのが不適切になりつつあるが、旧来の多くのオブジェクト指向言語が備えている性質には以下のものがある。
- ポリモーフィズム (多態性)
- あるオブジェクトへの操作が呼び出し側ではなく、受け手のオブジェクトによって定まる特性。クラスベースのオブジェクト指向の場合には、派生クラスの複数分岐として多態性を実現する。 プロトタイプベースのオブジェクト指向の場合では関係がない概念とされる。
オブジェクト指向の方式
- クラスベース方式 — クラスを定義し、それを元にインスタンスを生成する方式である。継承ベースともいう。
- プロトタイプベース方式 — 既存のインスタンスを元に、新たなインスタンスを生成する方式である。インスタンスベースともいう。
- Mixin方式 — さまざまなオブジェクトの原型を組み合わせて一つのオブジェクトを構成する方式である。
オブジェクト指向の名称とメッセージング
Eclipseを開発したDave Thomasや、オブジェクト指向という言葉の生みの親であるAlan Kay博士は、オブジェクト指向という言葉は失敗だったと語っている。[1] これは、本来オブジェクト指向が重視すべきは「オブジェクト」ではなく「メッセージング」であるにもかかわらず「メッセージング」がおろそかにされているためである。特に言語の進歩において「オブジェクト」や「クラス」の側面ばかり強調される傾向にあり、Alan Kay博士は「Smalltalkが最高に好きという訳ではないが、他の言語に比べればマシである。」と述べている。
脚注
- ^ http://www.infoq.com/jp/news/2010/07/objects-smalltalk-erlang
関連項目
- オブジェクト指向モデリング
- 構造化プログラミング
- データ指向
- エージェント指向
- アスペクト指向
- ソフトウェア工学
- デザインパターン (ソフトウェア)
- UML
- オブジェクトデータベース
- オブジェクト関係データベース
- オブジェクト指向言語の比較
- オブジェクト指向プログラミング
- オブジェクト指向分析設計 (オブジェクト指向開発方法論)
- オブジェクトモデル化技法 (OMT)
- Booch法
- オブジェクト指向ソフトウェア工学 (OOSE/Objectory)
- Category:オブジェクト指向言語
- NEXTSTEP - オブジェクト指向OSとしてその先進性をアピール。後続OSや開発環境に大きな影響を与えた。
- Cocoa - NEXTSTEPの後身のフレームワーク。
- 統合開発環境
- コンテンツマネージメントシステム
- CRCカード
- 組合せ爆発
外部リンク
|
ウィキブックスにオブジェクト指向関連の解説書・教科書があります。 |
プログラミング言語の関連項目 |
|
言語の種別 |
低水準言語(機械語) / 高水準言語(アセンブリ言語) / 中間言語
|
|
プログラム合成 |
インタプリタ / コンパイラ / デバッガ / 統合開発環境 / オーサリングツール
|
|
開発手法 |
正規表現 / イベント駆動型プログラミング / オブジェクト指向
|
|
コンピュータ言語 |
静的プログラミング言語 / 動的プログラミング言語 / 軽量プログラミング言語 / 軽量マークアップ言語 / スクリプト言語(シェルスクリプト) / データフロープログラミング言語 / ハードウェア記述言語 / ラダー言語 / ビジュアルプログラミング言語 / 難解プログラミング言語 / 宣言型言語(関数型言語・論理型言語(制約論理プログラミング言語・並行論理プログラミング言語・並行制約プログラミング言語) / 命令型言語(非構造化プログラミング言語・構造化プログラミング言語(オブジェクト指向プログラミング言語(Mixin・クラスベース・プロトタイプベース))
|
|
その他 |
プログラミング言語一覧 / プログラミング言語年表 / プログラミングパラダイム / Hello world / コードゴルフ
|
|
UpToDate Contents
全文を閲覧するには購読必要です。 To read the full text you will need to subscribe.
Japanese Journal
- オブジェクト指向に基づく言語インターフェース (ことば工学研究会(第49回)物語、その周辺)
- オブジェクト指向/関数型言語をベースとするハードウェア記述言語FSLの設計 (リコンフィギャラブルシステム)
- 電子情報通信学会技術研究報告 = IEICE technical report : 信学技報 115(228), 27-32, 2015-09-18
- NAID 40020616934
Related Pictures
★リンクテーブル★
[★]
- 英
- object
- 関
- 対象、反対、物体、目的、目標