オブジェクト指向プログラミングとは? わかりやすく解説

Weblio 辞書 > 固有名詞の種類 > 製品 > コンピュータ > プログラミング言語 > プログラミング言語 > オブジェクト指向プログラミングの意味・解説 

オブジェクトしこう‐プログラミング〔‐シカウ‐〕【オブジェクト指向プログラミング】

読み方:おぶじぇくとしこうぷろぐらみんぐ

object-oriented programmingコンピュータープログラミング技法の一。データ対する処理はデータそのもの付随したのであるというオブジェクト指向概念に基づく。プログラム内部動作操作手順詳細を知ることなく利用でき、また、再利用容易になるため、ソフトウエア設計開発効率化を図ることができる。この手法によるプログラミング言語としてC++Javaスモールトークなどがある。OOP


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

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/08/03 12:42 UTC 版)

オブジェクト指向プログラミング(オブジェクトしこうプログラミング、: object-oriented programming, OOP)とは、「オブジェクト」という概念に基づいたプログラミングパラダイムの一つである。




「オブジェクト指向プログラミング」の続きの解説一覧

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

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/08/08 18:40 UTC 版)

結合度」の記事における「オブジェクト指向プログラミング」の解説

サブクラス結合Subclass Coupling子クラスとその親クラスとの間の関係で、子クラスは、その親クラス依存しているが、親クラス子クラス知らない状態。子クラス親クラス依存しすぎると、親クラス修正するのが難しくなる一時的結合Temporal coupling) あるメソッド別のメソッド依存すること(例えば、executeしないとerror取得できない)。

※この「オブジェクト指向プログラミング」の解説は、「結合度」の解説の一部です。
「オブジェクト指向プログラミング」を含む「結合度」の記事については、「結合度」の概要を参照ください。


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

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/08/07 01:49 UTC 版)

オブジェクト (プログラミング)」の記事における「オブジェクト指向プログラミング」の解説

「オブジェクト指向プログラミング」も参照 オブジェクト指向プログラミングパラダイムでは、関連するデータ束ね代入演算手続き関数メソッドなど)を介した受け渡しといった操作対象にでき、またメッセージ受け手になれる実体オブジェクトと呼ぶ(ただし、数値などの基本的なデータ型オブジェクトとしないプログラミング言語も多い)。多く場合オブジェクトは他のオブジェクト要素として格納することができ、複雑なデータ構造表現できる。なお、英語の object には「対象」「もの」といった意味があるオブジェクトは、プログラム上で実現したい概念例えば「顧客」「社員」「課」「商品」「注文書」など)をメタファとして表現するのにもしばしば使われプログラムの設計考えた他人共有したりするのに役立つと考えられている。またマウスカーソルウィンドウメニューファイル段落など、コンピュータ上でユーザ目にするもので、名前が付いているようなものはほとんどオブジェクトとして表現できるオブジェクトは、それ自身に関するデータだけでなく、それ自身内部データ対す操作束ねている場合が多い。例えば、注文書を表すオブジェクトには、注文する商品追加する操作注文取り消す操作用意することができる。またマウスカーソルを表すオブジェクトについては、上下左右に動かす、クリックするというような操作考えられるし、ファイルオブジェクトについては、コピー削除などの操作考えられる操作対象操作そのものの定義や動作まとめて表現することでプログラム見通し良くなり、プログラミング効率プログラム再利用性を高めるのに寄与する考えられている。 クラスベースオブジェクト指向では、共通した特徴動作をもつオブジェクトをまとめ、その共通の性質記述定義した、「オブジェクト分類」をクラスという(英語の class種類・分類の意味がある)。そして、あるクラス分類される具体的なオブジェクトをそのクラスインスタンスという。例えば、「ファイルというもの」や「アイコンというもの」の性質定義したのがクラスであり、「ファイルというもの」の性質沿った一つ一つファイルを表すものが「ファイルクラスのインスタンス」である。

※この「オブジェクト指向プログラミング」の解説は、「オブジェクト (プログラミング)」の解説の一部です。
「オブジェクト指向プログラミング」を含む「オブジェクト (プログラミング)」の記事については、「オブジェクト (プログラミング)」の概要を参照ください。


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

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/03 23:37 UTC 版)

Python」の記事における「オブジェクト指向プログラミング」の解説

Pythonでは扱えるデータ全てオブジェクトである。単純な数値といった基本的なデータ型をはじめ、組み込みコンテナ型組み込み関数など、これらは全て統一的な継承関係をもつオブジェクトであり「型」をもっている。これらの組み込み型とユーザ定義型は区別されず、組み込み型を継承したクラス定義できる上のデータ型」の項で述べたように Python静的な型チェック持たないため、Javaのようなインターフェイスという言語上の仕組みは必要とされないクラス継承 (inheritance) メカニズムでは、複数基底クラスを持つことができ(多重継承)、導出されたクラスでは基底クラス任意のメソッドをオーバライド(override; 上書き)することが可能である。 また、オブジェクトには任意のデータ入れることができる。これらのメソッドデータは、基本的に、すべてpublicであり、virtual仮想)である。ただし、先頭アンダースコアをもつメンバprivateとすることができる。これは単なるマナーであるが、アンダースコア2つもつ場合は、クラス外部からメンバの名前を隠された状態(mangle; 難号化)とすることでカプセル化実現できるまた、利用者定義演算子機能として用意されておりほとんどの組み込み演算子算術演算子arithmetic operator)や添字表記)はクラスインスタンスで使うために再定義することが可能となっている。

※この「オブジェクト指向プログラミング」の解説は、「Python」の解説の一部です。
「オブジェクト指向プログラミング」を含む「Python」の記事については、「Python」の概要を参照ください。


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

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/09/07 01:59 UTC 版)

銀の弾などない」の記事における「オブジェクト指向プログラミング」の解説

オブジェクト指向プログラミングでは、クラス概念導入しカプセル化継承活用することができる。 多くソフトウェア工学分野研究者が、オブジェクト指向プログラミングの有効性大きな期待寄せている (グラディ・ブーチ) 。 そして、ブルックス自身も、オブジェクト指向プログラミングに非常に期待している。 ただし、オブジェクト指向プログラミングも、ソフトウェア開発過程における偶有的な複雑性一つ除去するにとどまる。 したがって、オブジェクト指向プログラミングが発展しても、本質的な複雑性低減されるわけではない

※この「オブジェクト指向プログラミング」の解説は、「銀の弾などない」の解説の一部です。
「オブジェクト指向プログラミング」を含む「銀の弾などない」の記事については、「銀の弾などない」の概要を参照ください。


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

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/04/16 01:36 UTC 版)

MATLAB」の記事における「オブジェクト指向プログラミング」の解説

MATLABは、オブジェクト指向プログラミングをサポートしている。しかし、シンタックス呼出規約他言語大きく異なる。MATLABは、値参照と、参照クラス用意している。メソッドを呼ぶ方法一例は以下である。 object.method(); objectクラスインスタンスであればobjectメンバー選択することで、メソッドを呼ぶことができる。 classdef hello methods function greet(this) disp('Hello!') end endend hello.m 名のファイル配置した後、次のコマンド実行する。 >> x = hello;>> x.greet();Hello!

※この「オブジェクト指向プログラミング」の解説は、「MATLAB」の解説の一部です。
「オブジェクト指向プログラミング」を含む「MATLAB」の記事については、「MATLAB」の概要を参照ください。


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

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/08/14 07:32 UTC 版)

上位概念、下位概念、同位概念および同一概念」の記事における「オブジェクト指向プログラミング」の解説

オブジェクト指向プログラミングにおいて、ある概念を表すクラスの上概念を表すクラスをそのクラススーパークラスという。また、下位概念を表すクラスをそのクラスサブクラスという。

※この「オブジェクト指向プログラミング」の解説は、「上位概念、下位概念、同位概念および同一概念」の解説の一部です。
「オブジェクト指向プログラミング」を含む「上位概念、下位概念、同位概念および同一概念」の記事については、「上位概念、下位概念、同位概念および同一概念」の概要を参照ください。


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

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/08/11 01:34 UTC 版)

オブジェクト指向分析設計」の記事における「オブジェクト指向プログラミング」の解説

詳細は「オブジェクト指向プログラミング」を参照 オブジェクト指向プログラミング (OOP; object-oriented programming) は、オブジェクト指向開発におけるオブジェクト指向設計 (OOD) の次の工程であり(この「次の工程」という概念自体ウォーターフォール開発固有の概念であり、それ自体OOADともオブジェクト指向(及びオブジェクト指向プログラミング)とも独立無関係である)、この工程ソフトウェアプログラミングを行う。 オブジェクト指向プログラミングでは、ほとんどの場合プログラミング言語としてオブジェクト指向プログラミング言語 (OOPL; object-oriented programming language) を採用するオブジェクト指向プログラミング言語では、オブジェクトクラス情報隠蔽継承多態性 (ポリモフィズム) などの概念を、プログラミング言語組み込んでいる。そのため、オブジェクト指向プログラミング言語有効に活用することで、オブジェクト指向プログラミングを効率的に行うことができる。 一方で、オブジェクト指向プログラミングにオブジェクト指向分析設計が有効か否かは、さだかではないオブジェクト指向分析設計はしばし前述のようにプログラミング分析設計の「次の工程」であるとウォーターフォール開発的に信じられていることもあるようだが、そのような考え方はオブジェクト指向プログラミングの流行によって生まれてきた、オブジェクト指向分析設計以外の多くの手法、特にアジャイルソフトウェア開発では完全に否定されている。また本来は、オブジェクト指向分析設計はクラスベースオブジェクト指向への拘泥は無いはずであるが、現実には多くオブジェクト指向分析設計解説においてクラスベースオブジェクト指向大前提となっており、JavaScriptなどプロトタイプベース観点見られない

※この「オブジェクト指向プログラミング」の解説は、「オブジェクト指向分析設計」の解説の一部です。
「オブジェクト指向プログラミング」を含む「オブジェクト指向分析設計」の記事については、「オブジェクト指向分析設計」の概要を参照ください。


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

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/01/06 05:45 UTC 版)

MooTools」の記事における「オブジェクト指向プログラミング」の解説

MooTools多くオブジェクト指向言語似たようなしっかりしたクラス生成継承システム備えている。例えば、以下は英語版Wikipediaにあるこちらのポリモーフィズムの例と同じことをMooTools実現したのであるvar Animal = new Class({ initialize: function(name){ this.name = name; } }); var Cat = new Class({ Extends: Animal, talk: function(){ return 'Meow!'; } }); var Dog = new Class({ Extends: Animal, talk: function(){ return 'Arf! Arf'; } }); var Animals = { a: new Cat('Missy'), b: new Cat('Mr. Bojangles'), c: new Dog('Lassie') }; for(var animal in Animals) alert(animal.name + ': ' + animal.talk()); // alerts the following: // // Missy: Meow! // Mr. Bojangles: Meow! // Lassie: Arf! Arf!

※この「オブジェクト指向プログラミング」の解説は、「MooTools」の解説の一部です。
「オブジェクト指向プログラミング」を含む「MooTools」の記事については、「MooTools」の概要を参照ください。


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

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/07/02 00:56 UTC 版)

クリステン・ニゴール」の記事における「オブジェクト指向プログラミング」の解説

1960年代オーレヨハン・ダールと共にオブジェクト指向プログラミングを創始しプログラミング言語Simula開発したことで知られている。現代情報社会基盤形成しているコンピュータシステム人類創造した最も複雑なのである。ニゴールらが行った革新的研究によってその複雑さ管理することが可能となった1956年オスロ大学数学修士号取得した論文テーマは "Theoretical Aspects of Monte Carlo Methods"(モンテカルロ法理論的側面)である。ノルウェー国防研究機構1948年から1960年まで勤務した1954年ごろまで、情報工学プログラミング1952年ごろから、オペレーションズリサーチを主に担当)。1957年以降同機構初のオペレーションズリサーチグループのリーダーとなった。彼はノルウェーでのオペレーションズリサーチ学会設立にも関与し初代会長務めた1959年-1964年)。 1960年、ノルウェー・コンピューティング・センター (NR) に雇われ研究機関としての基礎固め行い1962年研究部門となった。ここでオーレヨハン・ダール共同世界初オブジェクト指向プログラミング言語 SIMULA I(1961年-1965年)とSIMULA 67開発したその後オブジェクト指向言語構成するオブジェクトクラス継承、マルチスレッドプログラム実行などはここで生み出された。1971年から1973年まで、労働運動目的考慮してノルウェー労働組合計画コントロールデータ処理などを評価する研究行ったまた、1975年ごろまでコンピュータ技術社会与え影響など研究行い同時に汎用システム記述言語 DELTA開発した1975年から1976年までデンマークオーフス教授務めその後オスロ名誉教授となった1977年からパートタイム1984年から1996年までフルタイム)。この時期システム開発コンピュータ技術社会への影響について研究と教育行い参加型デザイン呼ばれる分野に密接に関連する Scandinavian School in System Development設立した1976年から汎用オブジェクト指向プログラミング言語 BETA開発実装1986年から)に携わった。この言語は今では様々なコンピュータ使用可能となっている。 1980年代前半スカンディナヴィア研究プログラム SYDPOL の運営委員会会長務めた。これはシステム開発言語研究人工知能などを研究するグループサポートするのである1990年6月スウェーデンルンド大学から名誉博士号授与され1991年6月にはデンマークUniversity of Aalborg からも名誉博士号授与された。また、ノルウェー科学アカデミー会員にもなった。1990年10月社会的責任を考えるコンピュータ専門家の会はニゴールの貢献に対してノーバート・ウィーナー賞授与した1995年から1999年分散型システムに関する研究行った1997年から3年間、GOODS(General Object-Oriented Distributed Systems)のリーダー務めた。これはハードウェア基盤からユーザーまでを含めた階層型分散システム設計可能なオブジェクト指向言語開発手法改良目指したものである2000年6月、「オブジェクト技術コンセプト生み出した」ことに対してオブジェクト指向国際標準化団体 Object Management Group(OMG) から名誉フェローとして表彰された。2001年11月ダールと共にSIMULA 67設計と実装通してオブジェクト指向プログラミングのコンセプト生み出したことに対してIEEEフォン・ノイマンメダル受賞した2002年2月、再びダールと共に2001年チューリング賞受賞した受賞理由は「プログラミング言語 Simula I と Simula 67設計通してオブジェクト指向プログラミングの基本的なアイデア生み出したことに対して」である。 晩年の研究は主に入門的なプログラミング教育情報学のためのプロセス指向概念基盤創造であったこのため新たな研究プロジェクト COOL(Comprehensive Object-Oriented Learning) で開発が行われた。

※この「オブジェクト指向プログラミング」の解説は、「クリステン・ニゴール」の解説の一部です。
「オブジェクト指向プログラミング」を含む「クリステン・ニゴール」の記事については、「クリステン・ニゴール」の概要を参照ください。


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

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/08/25 05:39 UTC 版)

ボイラープレートコード」の記事における「オブジェクト指向プログラミング」の解説

オブジェクト指向プログラミングでは、多く場合クラスにはインスタンス変数取得設定するためのメソッド提供される。これらの定義は、定型文見なされるコードクラスごとに異なるが、構造決まりきっているため、手動記述するよりも自動的に生成する方が適切である。たとえば、ペットを表す次のJavaクラスでは、Petname 、およびowner宣言除いて、ほとんどすべてのコード定型文である。 public class Pet { private String name; private Person owner; public Pet(String name, Person owner) { this.name = name; this.owner = owner; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Person getOwner() { return owner; } public void setOwner(Person owner) { this.owner = owner; }} この例のボイラープレートの殆どは、カプセル化のために存在する変数nameownerpublicとして宣言されている場合、アクセサメソッドとミューテーターメソッドは必要ない。 ボイラープレートの量を減らすために、 JavaならばLombokのようなフレームワーク開発されている。 上記と同じコードは、メタプログラミング形式であるJavaアノテーション使用してLombokによって自動生成される。 @AllArgsConstructor @Getter@Setterpublic class Pet { private String name; private Person owner;} 他のいくつかのプログラミング言語では、その言語そのような一般的な構造サポート組み込まれている場合、より少な定型文で同じことを達成できる可能性がある。たとえば、上記Javaコード相当するものは、1行のコード使用してScala表現できるcase class Pet(var name: String, var owner: Person) または、 C#では、コンパイラによって生成されたバッキングフィールドで自動プロパティ使用するpublic class Pet { public string Name { get; set; } public Person Owner { get; set; }}

※この「オブジェクト指向プログラミング」の解説は、「ボイラープレートコード」の解説の一部です。
「オブジェクト指向プログラミング」を含む「ボイラープレートコード」の記事については、「ボイラープレートコード」の概要を参照ください。

ウィキペディア小見出し辞書の「オブジェクト指向プログラミング」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ

「オブジェクト指向プログラミング」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。



固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「オブジェクト指向プログラミング」の関連用語

オブジェクト指向プログラミングのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



オブジェクト指向プログラミングのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
デジタル大辞泉デジタル大辞泉
(C)Shogakukan Inc.
株式会社 小学館
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのオブジェクト指向プログラミング (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの結合度 (改訂履歴)、オブジェクト (プログラミング) (改訂履歴)、Python (改訂履歴)、銀の弾などない (改訂履歴)、MATLAB (改訂履歴)、上位概念、下位概念、同位概念および同一概念 (改訂履歴)、オブジェクト指向分析設計 (改訂履歴)、MooTools (改訂履歴)、クリステン・ニゴール (改訂履歴)、ボイラープレートコード (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。
Tanaka Corpusのコンテンツは、特に明示されている場合を除いて、次のライセンスに従います:
 Creative Commons Attribution (CC-BY) 2.0 France.
この対訳データはCreative Commons Attribution 3.0 Unportedでライセンスされています。
浜島書店 Catch a Wave
Copyright © 1995-2024 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2024 Kenkyusha Co., Ltd. All rights reserved.
日本語WordNet日本語WordNet
日本語ワードネット1.1版 (C) 情報通信研究機構, 2009-2010 License All rights reserved.
WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. License
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
「斎藤和英大辞典」斎藤秀三郎著、日外アソシエーツ辞書編集部編
EDRDGEDRDG
This page uses the JMdict dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

©2024 GRAS Group, Inc.RSS