抽象化とカプセル化の違い

主な違い:抽象化とカプセル化は、コンピュータサイエンスプログラミングの概念です。 抽象化とは、データの余分な特性がデータから削除されるか分離されるプロセスです。 一方、カプセル化は、データが隠され、メソッドにまとめられるメカニズムです。

抽象化は、データを具体的にするために余分なデータを取り除き削除する一般化されたプロセスです。 コンピュータでは、データを簡潔な形式に変換するのに役立つプログラミング方法です。 この方法ではデータとプログラムは変更されず、どちらも同じ初期形式で保持されます。 唯一の違いは、表示可能なサイズが小さくなることです。 抽象化は細部を減らし、因数分解を試みるので、プログラマは一度にいくつかの概念に集中することができます。

システムはそのような抽象化の層を多数持つことができ、それらは異なる意味と詳細を持ちます。 たとえば、低レベルの抽象化レイヤはプログラムが実行されるコンピュータハードウェアの詳細を公開し、高レベルの抽象化レイヤはプログラムのビジネスロジックを扱います。 これらの詳細は実行時にプログラマに公開されます。 抽象化は、特定のインスタンスに関連付けられていない概念またはアイデアです。 それはその目的と現在の展望に関係しているデータのそれらの詳細だけを捕らえます。 それはオブジェクトのファミリーにおいて(オブジェクト指向プログラミングの概念において)主要な役割を果たす。 そして、さまざまな方法や実装で使用されています。

抽象化の概念は、次のものに実装できます。

  • コントロール抽象化:それはアクションの抽象化です。
  • データ抽象化:データビットとデータ構造を意味のある方法で許可し処理します。

コンピュータプログラミングのカプセル化は、その機能を2つの異なる表記法に強調しています。

  • 一部のオブジェクトのコンポーネントへのアクセスを制限する言語メカニズム。
  • そのデータを操作するメソッド(およびその他の機能)とデータをバンドルすることを容易にする言語構成。

カプセル化は隠れメカニズムであり、部外者からのデータを保護および保護するのに重要な役割を果たします。 実際のデータの悪用を防ぐことで、データに基本的な整合性を実際に提供します。 カプセル化では、データは元の有効で一貫性のある形式で保管およびアクセスされます。

一般に、カプセル化とは、ユーザからのオブジェクトを保存し、それを一般的な形式で表現することを意味します。 基本的に、カプセル化では余分な詳細は外部環境から隠されています。 オブジェクトフィールドはこのメカニズムで直接検査され操作されます。 家具とともに隠されている情報は、ソースコードとしてさらに使用されるバージョンでコンパイルされ、ヘッダファイルを介してインターフェースされます。 ときには、パブリッククラスがデータにアクセスしようとする場合があります。このような場合、カプセル化によってパブリックインベーダーによるデータの再生が許可されません。 カプセル化の主な利点の1つは、メカニズムがプログラムの簡潔な形式のみを表すため、プログラムの複雑さを軽減し、ユーザーがプログラムの正確な概念を理解するのに役立ちます。 これにより、開発者またはプログラマがソフトウェアコンポーネント間の相互依存性を制限できるため、堅牢性が向上します。 カプセル化は、SmalltalkやRubyなどの一部の言語にも適用できます。この場合、アクセスはオブジェクトメソッドを介してのみ許可されます。 一方、C ++、C#、Javaなどの他のほとんどのものは、プログラマにある程度の制御を提供します。 これらの言語を使用すると、開発者はpublicやprivateなどのキーワードを使用して、隠されているものにアクセスできます。

抽象化とカプセル化も、OOP(オブジェクト指向プログラミング)の主要な基本事項です。

抽象化とカプセル化の比較

抽象化

カプセル化

簡単な説明

抽象化は、アイテムまたはアイテムのグループに関する重要な詳細を抽出し、重要でない詳細を無視するプロセスです。

カプセル化とは、データをカプセルにラップするかカプセル化するか、データを簡潔にするプロセスです。

彼らです

抽象化は、表示に必要のないデータを隠すという考えに関連しています。

カプセル化は、データと機能をグループ化したものです。

基本機能

基本的に、抽象化は不要なデータを隠すために使用され、関連するデータを提供します。

基本的に、カプセル化とは、データを外部から保護するためにコードとデータを1つの単位に隠すことを意味します。

いつ運用されますか

それはデザインレベルで問題を操作します。

それは実装レベルで問題を操作します。

役割に有益

これは、ユーザーがオブジェクトがどのように機能するのかではなく、オブジェクトが何をするのかに集中するのに役立ちます。

それはプログラマがオブジェクトが何かをする方法の内部の詳細や仕組みを隠すのを助けます。

情報は

ここで情報は実データから分離されています。

ここでの情報は隠しフォーマットにまとめられています。

レイアウト

それはデザインの観点から使用されている外側のレイアウトに関係しています。

それはインプリメンテーションの観点から使われる内部レイアウトに関係しています。

例えば

携帯電話の外観。番号をダイヤルするための表示画面とキーパッドボタンがあります。

携帯電話の内部実装の詳細、回路を使用してキーパッドボタンとディスプレイ画面を互いに接続する方法。

推奨されます

関連記事

  • との差: 道徳と価値観の違い

    道徳と価値観の違い

    主な違い: 道徳は、社会、文化、宗教などの信念体系に基づいて、権利と誤りとを区別する一連の規則です。価値は、個々の人によって設定される一連の規則です。 道徳と価値観は個人の生活の一部です。 彼らはしばしば行動、人格、そして特定の個人の生き方を決定します。 多くの人がそれらは同じものであり、互換的に使用できると信じていますが、彼らは間違っています。 これら2つの用語は互いに関連しており、人の生活の中で相関することがよくあります。 しかしそれらは多くの点で互いに異なっています。 道徳は、社会、文化、宗教などの信念体系に基づいて、権利を間違ったものから区別する一連の規則です。これらはすでに私たちに設定されている倫理であり、成長しながら順守しなければなりません。 人が生まれる瞬間から、彼らは鋼鉄加工が悪い、礼儀正しいことが良い、援助を与えることが良い、そして意味が悪いことであるとよく言われます。 これらは、代々受け継がれてきた道徳の例です。 道徳は地域、文化、宗教などによって大きく異なります。多くの文化は、神は人間の犠牲を要求し、これは道徳的に受け入れられると述べました。 しかし、他の文化では、あらゆる状況下でのあらゆる人物の殺害は道徳的に間違っていると述べています。 Merriam Websterは、「道徳的」を「行動の善悪の原則に関する、またはそれに関連する」と定義しています。 正しい行
  • との差: 配送と配達の違い

    配送と配達の違い

    主な違い: 出荷は、出荷がサプライヤの倉庫を出る日です。 配達は、パッケージが顧客の目の前に到着する予定日です。 eコマースのブーム以来、出荷と配達という用語がより目立つようになりました。 人々が個人的に店に行くことを要求したアイテムは、ボタンをクリックするだけでオンラインで注文することができます。 電子商取引は、同様に顧客とサプライヤのための全道を開いた。 2つの用語は互いに同義であると想定しているため、配送と配達は多くの顧客にとって混乱を招きます。 ある店がオンラインで買い物をする場合、会社はそれらに2つの日付を与えます:出荷日と配達日。 これらの用語は、物流において2つの意味を持ち、電子商取引が今日の世界で登場しているので、この2つの用語の違いを理解することが不可欠です。 1つの定義では、2つの用語の主な違いは出荷品のサイズ、つまり荷物のサイズです。 靴、衣服、小物、小型電化製品などのより小さな物は、箱詰めにして郵便サービスを使用して顧客に送ることができる輸送の範疇に入る。 大きな電化製品、家具など、設置や配達要員が内部に持ち込んで持ち運ぶ必要があり、郵便サービスを介して単純に郵送することができない大型のものは配達です。 2番目の定義は少しわかりにくいです。 この文脈では、出荷という用語は、dispatchedという単語と同義語と見なすことができます。 これを参照するとき、Di
  • との差: ポンドとストーンの違い

    ポンドとストーンの違い

    主な違い: ポンドとストーンは2つの異なる測定単位です。 両者の主な違いは、ポンドは米国と英国の両方で使用されていますが、石は主に英国で使用されているという事実です。 また、1石= 14ポンド= 6.3503キログラム ポンドとストーンは2つの異なる測定単位です。 どちらも体重、特に体重の測定に使用されます。 ポンドは何にでも使うことができますが、石は体重によく使われます。 それらの間のもう一つの違いはポンドがアメリカとイギリスの両方で使われているのに対して、石はイギリスで主に使われているという事実です。 どちらも、世界中の他の郡ではあまり一般的に使用されていません。一般的な基準では、メートル法の一部であるキログラムを使用します。 ポンドと石の両方が独自に開発され、ヨーロッパ諸国で一般的に使用されていました。 ポンドは天秤座のローマの単位から派生している、ポンドの省略形は "lb"である理由です。 石は、その一方で、測定のための標準として大きな石を使用する英語の伝統的な方法から派生しました。 イギリス人は最終的に全体重測定の標準としてウールストーンを採用した。 これはまだ使われている石です。
  • との差: 双極性障害と統合失調性感情障害の違い

    双極性障害と統合失調性感情障害の違い

    主な違い: 双極性障害は、人々が広範囲の気分変動を経験する状態です。 人は幸せになり始め、それから悲しみや意気消沈になります。 統合失調症性障害は、人が再発する異常な気分および精神病的要素を示す精神状態である。 双極性障害と統合失調性感情障害は、人に影響を及ぼす可能性がある2つの異なるタイプの病状です。 これらは似たような症状があるため、診断が難しいことがよくあります。 多くの場合、人は統合失調症の傾向と共に双極性障害にも罹患する可能性があります。 多くの場合、専門の精神科医に患者の診断を依頼することをお勧めします。これらの状態は、障害によって変化しない人が生きることができることを保証するために適切に治療する必要があるためです。 双極性障害は、人々が広範囲の気分変動を経験する状態です。 人は幸せになり始め、それから悲しみや意気消沈になります。 これらの気分変動は非常に速く、数分で起こります。 双極性障害は、15〜25歳の男女で同様に一般的であり、この障害の原因の正確な理由はありませんが、それは人生を変える状況、投薬、睡眠不足およびレクリエーション薬物使用に起因するとされています。 双極性障害には3つのタイプがあります:双極性障害I型、双極性障害II型および気分循環症。 双極性タイプIは人々が少なくとも1つの躁病のエピソードと大うつ病の期間の障害です。 このタイプの障害は以前は躁鬱病と
  • との差: HTC FirstとLG Optimus F5の違い

    HTC FirstとLG Optimus F5の違い

    主な違い: HTC Firstは、Facebook Homeのユーザーインターフェイスでリリースされる最初の携帯電話です。 携帯電話はクアルコムMSM8930 Snapdragon 400 1.4 GHzデュアルコアKraitと1 GBのRAMを搭載します。 LGコンボイF5は4.3インチの画面を備えており、Android v4.1.2(Jelly Bean)で動作します。 それはデュアルコア1.2 GHzプロセッサ、1 GBのRAMと5MPカメラで構築されています。 今日の世界では、ソーシャルネットワーキングは水の空気よりも重要です。 何人かの人々は食べ物なしで通り抜けることができるかもしれませんが、日中に少なくとも数回彼らのFacebookア
  • との差: 滑走と高騰の違い

    滑走と高騰の違い

    主な違い: グライダーとは何の努力もせずにできることです。 推進力もエンジンも必要ありません。 紙飛行機を考えてください、それはどんな動力源も持っていません。 空中に投げると、ゆっくりと部屋の長さを横切って着地するか、床に落ちます。 これは滑空です。 滑ることは、気流と重力を使って短距離を移動することです。 急上昇は、さまざまな鳥が行使する飛行状態です。 あなたは今までに一人で空の高い所で鳥を見たことがあります、そしてそれは羽を羽ばたかせずに飛んでいるようです。 あの鳥は実際に急上昇中です。 滑空と急上昇は、ふつう空中で動いているものを表す2つの異なる単語です。 Dictionary.comによると、「滑走」という言葉は次のように定義されています。 飛んでいる鳥、ボート、またはスケーターのように、力や抵抗がないかのように滑らかにそして連続的に動くこと。 漸進的または観察不能な変化(多くの場合、その後に沿って、離れて、続いてなど)が続く。 静かに、またはこっそりと、あるいは気づかれずに動くこと(通常はイン、アウト、一緒など)。 特に気流と重力の作用によって、あるいはすでに獲得された運動量によって、水平飛行よりも少ないエンジン出力で、特に下向きの角度で空中を移動すること。 グライダーで飛ぶために。 一方、「急上昇」は次のように定義されます。 鳥のように、上へ飛ぶこと。 鳥のように、ピニオ
  • との差: 形容詞と副詞の違い

    形容詞と副詞の違い

    主な違い: 形容詞と副詞は、8つの品詞の一部です。 ただし、それらは使用方法が異なります。 形容詞は、名詞または代名詞を説明または修正するために使用される単語です。 物や人を説明、識別、または数量化することがあります。 副詞は、動詞、形容詞、または他の副詞を記述または修正するために使用される、基本的に任意の単語です。 形容詞と副詞は、8つの品詞の一部です。 ただし、それらは使用方法が異なります。 形容詞は、名詞または代名詞を説明または修正するために使用される単語です。 物や人を説明、識別、または数量化することがあります。 Dictionary.comは形容詞を「主に賢い祖母には賢い、完璧なスコアには完璧、またはハンサムには修正している単語の特定の品質を記述することによって、名詞と代名詞を修正する単語のクラスのメンバー」と定義します彼はとてもハンサムだ。 数(1杯; 12か月)、特定の指示代名詞(この雑誌、それらの質問)などの他の用語、および制限を課す用語(一人一人;慈悲のない)も形容詞的に機能します。ボトルキャップの中のボトルとバスステーションの中のバスのように、変更する名詞の直前にくるフレーズを修正しました。 同義語:修飾子、修飾子、識別子、説明者、説明する単語。」 一方、副詞とは、「動詞や句の修飾子として機能する単語のクラスの任意のメンバー、およびラテン語や英語などの形容詞、その
  • との差: 淡水真珠と海水真珠の違い

    淡水真珠と海水真珠の違い

    主な違い: 淡水真珠は、湖や川などの食塩水を含まない水に生息するムール貝で育ちます。 海水真珠は、海や海などの塩水でカキの中で育ちます。 それは他の石とは異なる方法で生産されているように真珠は宝石の世界で興味深い希少性と考えられています。 他の石は地球の奥深くに、暗くて湿った洞窟の中で作られます。 真珠は海洋の深部で生産され、特定の状況下でのみ生産することができます。 真珠は、アサリの殻に似た微細な結晶形の炭酸カルシウムで構成されています。 炭酸カルシウムは生きている殻を持った軟体動物の殻の中に作られています。 真珠の形成は、かなり興味深いプロセスで、ハマグリやカキで起こります。 異物がハマグリやカキの殻に入ると、防御機構が働き始め、軟体動物は真珠層としても知られている真珠層と真珠層で粒子をコーティングし始めます。 層を重ねた連続層は、その粒子の周りに厚い被膜を形成し、その結果真珠が形成される。 真珠は一般的に丸い形ですが、バロック真珠のような他の形にすることもできます。 今日、真珠採掘は高価な事業となり、今では多くの人々が正しい状況を作り出すことによって真珠を作り出しています。 真珠は現在2つの主要なグループの間で分類することができます:天然真珠および養殖真珠。 天然真珠は人間の操作が行われていない自然の中で発生する真珠です。 ラボや管理された環境では作成されないため、これらは本質
  • との差: 社会学と心理学の違い

    社会学と心理学の違い

    主な違い: 社会学は人間の社会的行動の研究です。 この研究は、人間社会のさまざまな社会活動、機能、構造、および役割の理解に焦点を当てています。 心理学は人間の心とそれがどのように機能するかの研究です。 心理学は、脳の機能を理解することと、人々、組織、そして地域社会がよりよく機能するのを助けるために知識を適用することに関係しなければならない多様な分野です。 社会学と心理学は人間に関する2つの異なるタイプの研究です。 社会学は集団の行動と社会がどのように機能するのかについての研究であり、心理学は人間の心と思考の研究です。 これら2つの研究は、人間の脳がどのように機能するのか、それらがどのようにして互いに作用し合うのか、そして他の多くのことと相互作用するのかを理解するために使用されます。 これら二つの研究を使って。 研究者や科学者は人間について多くのことを発見することができます。 社会学は、いくつの古い文化が機能していたかを理解するために使用されてきました。 American Heritage Dictionaryでは、社会学を「人間の社会的行動の研究、特に人間社会の起源、組織、制度、および発展の研究」と定義しています。人間社会 社会学者は、経験的調査、批判的分析、インタビュー、世論調査など、さまざまな方法で人間社会を理解します。 この研究は、社会階級、文化、世俗化、法律、人種と民族、社会

エディターズチョイス

例によるCとC ++の違い プログラミング言語

主な違い: CとC ++は2つの異なるコンピュータプログラミング言語です。 C ++はCプログラミング言語から開発されました。 しかし、それらは性質がかなり異なります。 最も明白な違いは、Cは手続き指向言語であるのに対し、C ++は手続き型プログラミングとオブジェクト指向プログラミングの両方をサポートしているため、ハイブリッド言語と呼ばれることが多いことです。 CとC ++は2つの異なるコンピュータプログラミング言語です。 Cはもともと1969年から1973年の間にAT&T Bell LabsでDennis Ritchieによって開発されました。C++は別の汎用プログラミング言語です。 それはオリジナルのCプログラミング言語から開発されました。 それは1979年からベル研究所でBjarne Stroustrupによって開発されました。それはCに基づいていたので、もともとC with Classesと呼ばれました。それは1983年にC ++に改名されました。 Cは、現在最も古いプログラミング言語の1つであり、最も広く使用されているプログラミング言語の1つです。 以前はアセンブリ言語でコーディングされていたアプリケーションで常に使用されています。 これには、UNIXコンピュータのオペレーティングシステムが含まれます。 また、Cは、C#、D、Go、Java、JavaScript、L