比較チャートの助けを借りて説明できる他のいくつかの違いがあります。
比較表
比較のために | ポップ | OOP |
---|---|---|
基本 | 手順/構造指向 | オブジェクト指向 |
アプローチ | トップダウン。 | 一気飲み。 |
基礎 | 主な焦点は、「タスクを実行する方法」、つまりプログラムの手順または構造にあります。 | 主な焦点は「データセキュリティ」です。 したがって、クラスのエンティティにアクセスできるのはオブジェクトだけです。 |
分割 | 大きなプログラムは関数と呼ばれる単位に分けられます。 | プログラム全体はオブジェクトに分割されています。 |
エンティティアクセスモード | アクセス指定子がありません。 | アクセス指定子は "public"、 "private"、 "protected"です。 |
オーバーロード/多態性 | 関数も演算子もオーバーロードしません。 | 関数、コンストラクタ、演算子をオーバーロードします。 |
継承 | 彼らは遺産の規定ではありません。 | 継承は、パブリックプライベートおよびプロテクテッドの3つのモードで達成されます。 |
データ隠蔽とセキュリティ | データを隠す適切な方法がないので、データは安全ではありません | データは、公開、非公開、保護の3つのモードで隠されています。 したがって、データセキュリティが向上します。 |
データ共有 | グローバルデータはプログラム内の機能間で共有されます。 | データはメンバー関数を介してオブジェクト間で共有されます。 |
友達機能/クラス | 友達機能の概念はありません。 | クラスまたは機能は、キーワード "friend"を持つ別のクラスの友達になることができます。 注: "friend"キーワードはc ++でのみ使用されます |
仮想クラス/機能 | 仮想クラスの概念はありません。 | 継承中に仮想機能の概念が現れる。 |
例 | C、VB、FORTRAN、パスカル | C ++、JAVA、VB.NET、C#.NET。 |
オブジェクト指向プログラミング(OOP)の定義
OOPの主な関心事は、クラスの非メンバー関数からデータを隠すことです。これは「重要な情報」として扱われます。 データはそれを操作するクラスのメンバー関数と密接に関係しています。 非メンバー関数がその中のデータを変更することを許可しません。 オブジェクトは、それらのデータにアクセスするためにメンバー関数を介して互いに通信します。
OOPは、「オブジェクト」、「クラス」、「データのカプセル化または抽象化」、「継承」、および「多態性/多重定義」の基本概念に基づいて開発されています。 OOPでは、データと関数を分割することによってプログラムをモジュールに分割することができます。さらに、必要に応じてモジュールの新しいコピーを作成するためのテンプレートとして使用することもできます。
手続き指向プログラミング(POP)の定義
POPは従来のプログラミング方法です。 手続き型プログラミングは、タスクを順番に実行することに主眼が置かれている場所です。 フローチャートはプログラムの制御の流れを整理します。 プログラムが大きい場合は、グローバルデータを共有する関数と呼ばれる小さな単位で構成されています。 機能によってプログラムに意図しない変更があるため、ここではデータセキュリティの懸念が生じます。
OOPとPOPの主な違い
- POPは手続き指向プログラミングですが、OOPはオブジェクト指向プログラミングです。
- POPの主な焦点は「タスクを実行する方法」です。タスクを実行するにはフローチャートに従います。 クラスのオブジェクトのみがクラスの属性または機能にアクセスすることを許可されているので、OOPの主な焦点はデータセキュリティにあります。
- 関数は、メインタスクを実行するために実行される大きなプログラムの小さな単位です。 OOPでは、クラスの属性と機能はオブジェクト間で分割されます。
- POPには、プログラム内の属性または機能にアクセスするための特定のアクセスモードはありませんが、OOPには、属性または機能にアクセスするためのアクセス共有として使用される3つのアクセスモードがあります。 。
- POPは、オーバーロード/多態性の概念をサポートしていません。 OOPはオーバーロード/ポリモーフィズムをサポートします。つまり、異なる機能を実行するために同じ機能名を使用するということです。 OOPでは、関数、コンストラクタ、演算子をオーバーロードできます。
- POPには継承の概念はありませんが、OOPは継承によって他のクラスの属性と機能を使用できるようにする継承をサポートします。
- POPはOOPと比較して安全性が劣ります。OOPでは、アクセス指定子がアクセスを属性または機能に制限するため、セキュリティが向上するからです。
- POPでは、プログラム内のすべての機能間でデータを共有する場合、すべての機能の外側でグローバルに宣言されます。 OOPでは、クラスのデータメンバーはクラスのメンバー関数を通してアクセスできます。
- POPにはフレンド関数の概念はありませんが、OOPにはクラスのメンバーではないフレンド関数の概念がありますが、これはフレンドメンバーであるため、クラスのデータメンバーおよびメンバー関数にアクセスできます。
- POPには仮想クラスの概念はありませんが、OOPでは仮想関数は多態性をサポートします。
結論
POPの欠陥はOOPの必要性を引き起こします。 OOPは、「オブジェクト」と「クラス」の概念を導入することによってPOPの欠陥を修正します。 データセキュリティ、およびオブジェクトの自動初期化と消去を強化します。 OOPを使用すると、干渉なしにオブジェクトの複数のインスタンスを作成できます。