読み方 : オブジェクトしこう

オブジェクト指向【object-oriented】OO

概要

オブジェクト指向とはコンピュータプログラムの設計や実装についての考え方の一つで、互いに密接に関連するデータ集合と手続き(処理手順)を一つのまとまりとして定義し、これを組み合わせてプログラム全体を構築していく手法。

システム全体を、現実世界の物理的なモノ(object)に見立てた「オブジェクト」と呼ばれる小さな構成単位の組み合わせとして捉える。システムの振る舞いはオブジェクト間の相互作用(機能の呼び出し/処理依頼)として記述される。

オブジェクトにはそれぞれ固有のデータ(属性/プロパティ/メンバ変数)と手続き(メソッド/メンバ関数)があり、外部からのメッセージを受けてメソッドを実行し、保有するデータを操作する。オブジェクトに付随するデータの操作は原則としてすべて内部のメソッドによって行われる。

この点をよく「生徒オブジェクトが数学、国語、英語の点数プロパティと平均点算出メソッドを持つ」といった例で説明するが、コンピュータプログラムではソフトウェアやデータに関連する概念や対象も取り扱うため、プログラム中のオブジェクトが必ずしも現実の物理的実体に対応するとは限らない。

オブジェクト指向はデータと操作手順を一体化(カプセル化)し、外部には処理の依頼方法(インターフェース)のみが公開されるため、ある箇所の変更が外部に与える影響を小さくすることができる。チームでのソフトウェア開発で分担などが行いやすく、大規模開発に向いていると言われる。適切に設計されたコードは他のプログラムで再利用しやすいため、似たような機能を重複して開発することを避け、開発の効率化を促すとされる。

オブジェクト指向の考え方をプログラミングに応用した手法を「オブジェクト指向プログラミング」(OOP:Object-Oriented Programming)と呼び、単にオブジェクト指向といった場合はこれを指すことが多い。オブジェクト指向開発のための仕様が盛り込まれたプログラミング言語を「オブジェクト指向言語」(OOL:Object-Oriented Language)という。

オブジェクト指向の概念自体はシステムやプログラムの設計や分析にも用いられ、「オブジェクト指向モデリング」(OOM:Object-Oriented Modeling)、「オブジェクト指向分析」(OOAObject-Oriented Analysis)、「オブジェクト指向設計」(OODObject-Oriented Design)などの技法が存在する。

🔰よくある質問

  • オブジェクト指向とは何ですか?
    データと処理をひとまとめにした「オブジェクト」という単位でプログラムを組み立てる考え方です。現実世界のモノの概念に近い設計ができるため、大規模な開発で広く採用されています。
  • クラスオブジェクトの違いは何ですか?
    クラスオブジェクトの設計図にあたり、オブジェクトはその設計図をもとに実際に作られた実体です。たとえば「犬」というクラスから「ポチ」「タロウ」という個別のオブジェクトを生成するイメージです。
  • 継承とは何ですか?
    継承とは、あるクラスの性質や機能を引き継いで、新しいクラスを作る仕組みです。例えば、「哺乳類」クラスの特徴を受け継いで、「犬」クラスや「猫」クラスを作るイメージです。共通部分をまとめられるので便利ですが、使いすぎると構造が複雑になることもあります。
  • カプセル化とは何ですか?
    オブジェクトの内部データや処理を外部から直接操作できないように隠蔽する仕組みです。必要な機能だけを外部に公開することで、意図しない操作によるバグを防ぎやすくなります。
  • オブジェクト指向を使わないとどうなりますか?
    小規模なプログラムであれば問題なく開発できますが、規模が大きくなり、関わる人数が増えるほどコードの管理が難しくなります。機能の追加や修正のたびに広範囲へ影響が及びやすく、バグの原因も特定しにくくなります。

オブジェクト指向の用語一覧

他の辞典等による「オブジェクト指向」の解説 (外部サイト)

資格試験などの「オブジェクト指向」の出題履歴

▼ ITパスポート試験
令3】 クラスや継承という概念を利用して、ソフトウェアを部品化したり再利用することで、ソフトウェア開発の生産性向上を図る手法として、適切なものはどれか。
平24秋】 次の a~d のうち、オブジェクト指向の基本概念として適切なものだけを全て挙げたものはどれか。a クラス b 継承 c データの正規化 d ホワイトボックステスト 。
平22秋】 ソフトウェア開発で利用する手法に関する記述 a~c と名称の適切な組合せはどれか。a 業務の処理手順に着目して、システム分析を実施する。
この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。