オブジェクト‐しこう〔‐シカウ〕【オブジェクト指向】
オブジェクト指向
ソフトウェア開発の考え方の一つ。データとそのデータを処理するためのメソッドがセットになった様々なオブジェクトを作り、オブジェクトに様々な処理をさせるという形でプログラムを作成していく。
具体的には、クラスというデータとそのデータを処理するメソッドがセットになったものを定義しておき、プログラム内で、定義したクラスのインスタンスを作成してメソッドを実行することで、そのインスタンスのデータを処理する。インスタンス一つ一つやクラス自体など、オブジェクト指向では様々なものがオブジェクトと呼ばれる。PHP 5で、はオブジェクト指向開発を行うための言語仕様が大幅に改良された。
関連用語
オブジェクト指向
別名:OO
【英】object oriented
オブジェクト指向とは、主にソフトウェア開発における考え方の一種で、プログラムを、処理の手順(手続き)ではなく、処理対象(オブジェクト)に着目して記述していく考え方のことである。
オブジェクト指向は、1970年代のオブジェクト指向プログラミング言語の誕生とともに始まった。それまで一般的であった手続き型プログラミングに比べて、オブジェクト指向は、プログラムの部品化やメンテナンスが容易なことから、大規模システム開発をはじめとして標準的なソフトウェア開発の手法として普及していった。
1980年代には、オブジェクト指向言語によるソフトウェアの部品化・再利用が進むと同時に、オブジェクト指向のための方法論も盛んとなった。オブジェクト指向プログラミング(OOP)のためにオブジェクト指向設計(OOD)が誕生し、オブジェクト指向設計のためにオブジェクト指向分析(OOA)が誕生した。
オブジェクト指向にはさまざまな開発方法論があったが、1995年に標準化のための統一方法論が発表された。統一方法論は、結果的に普及しなかったものの、表記方法のみを標準化した統一モデリング言語(UML)が広く用いられるようになった。
オブジェクト指向の特徴としては、おおむね、「カプセル化」、「継承」、「多様性」といった要素を挙げることができる。
「カプセル化」とは、オブジェクトが持つ属性(フィールド)や動作(メソッド)を外部から隠蔽し、必要最低限のインターフェースのみを公開することである。カプセル化を行うことによって、オブジェクトの変更や再利用が容易になる。
「継承」(インヘリタンス)とは、共通の性質(プロパティ)を持ったオブジェクトの集まりを意味するクラスについて、サブクラスがクラスの性質を自動的に受け継ぐこととである。例えば、「動物」-「ほ乳類」-「イヌ」といった階層構造を持ち、「イヌ」を「ほ乳類」のサブクラスとして定義すると、「ほ乳類」の性質を自動的に受け継ぐことになる。継承によってプログラミングの効率化を図ることが可能となっている。
「多様性」(ポリモーフィズム)とは、クラスごとに異なる実装のメソッドを、同じメソッド名で呼び出すことである。例えば、「イヌ」は4本足を交互に動かして、「クルマ」はタイヤを回転させて「走る」が、ポリモーフィズムにより、こうしたクラスごとのメソッドの詳細を意識しないでそのメソッドを呼び出すことが可能となる。
今日、オブジェクト指向は、複雑で大規模なシステム開発にはとんど必要不可欠な手法として利用されている。オブジェクト指向プログラミング言語の主な例としては、Smalltalk、Java、Python、Rubyなどを挙げることができる。
オブジェクト指向
オブジェクト指向
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/04/02 03:16 UTC 版)
オブジェクト指向(オブジェクトしこう、英: object-oriented)は、ソフトウェア開発とコンピュータプログラミングのために用いられる考え方である。元々は特定のプログラミングパラダイムを説明するために考案された言葉であり、その当時の革新的技術であったGUI(グラフィカル・ユーザーインターフェース)とも密接に関連していた。明確な用語としては1970年代に誕生し、1981年頃から知名度を得て、1986年頃からソフトウェア開発のムーブメントと化した後に、1990年頃にはソフトウェア開発の総合技術としての共通認識を確立している。ソフトウェア開発における一つの標語のような扱い方もされている。
- ^ a b “The Early History Of Smalltalk”. 2019年1月閲覧。
- ^ How Object-Oriented Programming Started
- ^ “OO History: Simula and Smalltalk”. 2019年2月閲覧。
- ^ “User Interface A Personal View”. 2020年1月閲覧。
- ^ “Dr. Alan Kay on the Meaning of “Object-Oriented Programming””. 2019年1月閲覧。
オブジェクト指向
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/13 16:15 UTC 版)
詳細は「オブジェクト指向プログラミング」を参照 Javaは、クラスベースのオブジェクト指向である。クラス、インターフェース、インスタンスといった概念を中心にしたものである。クラスのメンバ要素は、フィールド、メソッド、静的フィールド、静的メソッド、定数、内部クラス、コンストラクタ、ファイナライザである。インターフェースは抽象メソッドと定数で構成される純粋抽象クラスである。クラスはインスタンスのひな型であり、インスタンスはクラスを実体化したものである。Javaプログラムは、1個以上のクラス定義文から形成される。Javaのクラスはカプセル化、継承、多態性をサポートしている。 カプセル化は、クラスメンバの可視性 (private, package, protected, public) でサポートされている。可視性とはメンバのアクセス許可範囲を定めるものであり、privateは同クラス内限定、packageは同クラス内と同パッケージ内限定、protectedは同クラス内と同パッケージ内と派生クラス内限定、publicは制限なしを意味する。パッケージはプログラム全体を任意に分割したソースファイルの1個以上のまとまりである。Javaのデフォルト可視性は、ファイル単位のpackageなので隠蔽性よりも利便性が重視されている。 継承は、スーパークラスが一つに限られる単一継承をサポートしている。多重継承は不可である。既存クラスに任意メンバを追加した新規クラスを作成できる。Javaの全クラスはObjectクラスをルートクラスとしてデフォルト継承する。Objectクラスにはロック機能が備えられており、これは並行プログラミングを前提にした仕様である。 多態性は、仮想関数、抽象クラス、インターフェース、動的ダウンキャストでサポートされている。スーパークラスのvirtualメソッドを、サブクラスの同名メソッドでオーバーライドできる機能を仮想関数と言う。スーパークラス変数にサブクラスインスタンスを代入してその変数からサブクラスのメソッドが呼ばれるようにするのは、サブタイピングになる。インターフェースは抽象メソッドだけの純粋抽象クラスであり、任意の数だけクラスに実装できる。実行時ダウンキャストはinstanceof演算子の実行時型チェックが可能で、ダウンキャスト失敗時は例外発生する。
※この「オブジェクト指向」の解説は、「Java」の解説の一部です。
「オブジェクト指向」を含む「Java」の記事については、「Java」の概要を参照ください。
オブジェクト指向
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/10/17 06:26 UTC 版)
オブジェクト・モデリング言語 (Object modeling language)は、オブジェクト指向ソフトウエア設計あるいはシステム設計(の一部)をモデル化する、標準化されたシンボルのセットとそれらの編成の方法に基づくモデリング言語である。 いくつかの組織はそれらを、初期仕様から実装計画に進化させ、その計画を開発者のチーム全体と利害関係者にコミュニケートするため、ソフトウエア開発手法と組み合わせて、幅広い範囲で利用する。モデリング言語は視覚的でコードより高度な抽象であることから、モデルの利用は、開発における後の異なった解釈の問題を防止するかもしれない共有ビジョンの生成を推奨する。しばしばソフトウエア・モデリング・ツールは、後にコードに自動変換する能力を持つかもしれない、これらのモデルを構築するため使われる。
※この「オブジェクト指向」の解説は、「モデリング言語」の解説の一部です。
「オブジェクト指向」を含む「モデリング言語」の記事については、「モデリング言語」の概要を参照ください。
オブジェクト指向
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/03 23:39 UTC 版)
R言語には継承やメソッドの実行時ディスパッチといったオブジェクト指向プログラミングの手法が取り入られており、数多くの総称的な (generic) 関数を持つ。これは同じ関数名であっても、取り扱うオブジェクトが属しているクラスによって独自の方法で処理を行うものである。Rでは、クラスはオブジェクトに付随する属性として扱われるものの一つであり、リストとして保持される。
※この「オブジェクト指向」の解説は、「R言語」の解説の一部です。
「オブジェクト指向」を含む「R言語」の記事については、「R言語」の概要を参照ください。
「オブジェクト指向」の例文・使い方・用例・文例
固有名詞の分類
- オブジェクト指向のページへのリンク