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

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > オブジェクト指向プログラミングでの抽象化の意味・解説 

オブジェクト指向プログラミングでの抽象化

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

抽象化 (計算機科学)」の記事における「オブジェクト指向プログラミングでの抽象化」の解説

詳細は「オブジェクト指向プログラミング」を参照 オブジェクト指向プログラミング理論では、抽象化とは抽象的アクター」であるオブジェクト定義する機能であり、アクター作業行い、状態を変化させ、状態を報告しシステム内の他のオブジェクトと「通信」する。カプセル化は、状態の詳細隠蔽することを意味する用語だが、従来プログラミング言語でのデータ型概念の拡張である。カプセル化データ強く結びついた「振る舞い」をそのデータ関連付け、他のデータ型との相互作用標準化し抽象化起点となる。抽象化をさらに進めて異なる型のオブジェクト間で同じ操作定義することをポリモーフィズムと呼ぶ。また、方向抽象化進めデータ型クラス内部抽象化してそれらの複雑な関係を単純化し構造化することを委譲または継承と呼ぶ。 オブジェクト指向言語は様々あるが、似たような抽象化手法提供している。ポリモーフィズムはほぼ全てのオブジェクト指向言語サポートされており、類似あるいは同じ役割を持つデータ型置換なども含まれるそれほど一般的ではないが、構成・イメージ・パッケージによってコンパイル時/リンク時/ロード時オブジェクト間の関係を決定することがあり、この場合実行時に関係を決定する必要性がほとんどなくなる。 CLOSSelfなどの言語では、クラスインスタンスをあまり区別せずポリモーフィズムの実現委譲をよく使う。また、個々オブジェクト関数はより柔軟に抽象化され、LISP機能により適するようになっているC++では、テンプレート演算子オーバーロードその他のコンパイル時の静的バインディングなどが特徴であり、これらがC++固有の柔軟性に関する問題生んでいる。 同じ抽象化にも様々な戦略があるが、基本的に抽象名詞コード内でサポートする必要性違いはない。いずれのプログラミング言語動詞関数として、名詞データ構造として、そして両者合わせてプロセスとして抽象化する機能基づいている。 例えば、以下のサンプルコードJavaによる動物抽象的表現である。ここでは、飢え食事という観点抽象化している。Animalクラス動物の状態と機能表現するよう定義されている。 class Animal extends LivingThing { Location loc; double energyReserves; boolean isHungry() { if (energyReserves < 2.5) { return true; } else { return false; } } void eat(Food f) { // Consume food energyReserves += f.getCalories(); } void moveTo(Location l) { // Move to new location loc = l; }} この定義で、Animal型のオブジェクト生成し、以下のようにメソッド呼び出すことができる: thePig = new Animal();theCow = new Animal();if (thePig.isHungry()) { thePig.eat(tableScraps); }if (theCow.isHungry()) { theCow.eat(grass); }theCow.moveTo(theBarn); この例では、Animalクラス動物抽象化したもので、LivingThing は Animal よりさらに高い抽象度の抽象化(この場合汎化)である。 もっと違った抽象化考えられる例え中間的な抽象化として、毎日ミルク生み出してくれる動物と、最後にとなってくれるだけの動物とに分類することができる。DailyAnimal (雌牛山羊)はミルク生み出すのに適した餌を与えられAnimal (豚や雄牛)は肉の質を高める餌を与えられるこのような抽象化をすれば、アプリケーションを書く人は餌の種類指定する必要がなくなり給餌スケジュール集中することができるようになる。この2つクラス継承関係であっても、全く独立していてもよく、それによってポリモーフィズム度合い変わってくる。このような機能言語によって大きく違うが、大体においてある言語できること他の言語でも可能である。演算子オーバーロード抽象データ型多用することで、継承や他のポリモーフィズム実現する手法同様の効果得られるクラス使った記法は単にコードを書くものの利便性のために存在するに過ぎない

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

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



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

辞書ショートカット

すべての辞書の索引

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

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

   

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



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

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの抽象化 (計算機科学) (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS