オブジェクト指向プログラミングとはどういう意味ですか?

小老鼠
リリース: 2023-07-17 13:56:39
オリジナル
1992 人が閲覧しました

オブジェクト指向プログラミングは、データを使用して一連の命令を表すコーディング設計です。これは、オブジェクト概念とプログラム開発のための抽象的なポリシーを備えたプログラミング パラダイムです。これは、状態を記述する属性と、オブジェクトの動作を実装するために使用されるメソッドで構成され、データ モデルから処理モデルまでの統合と統一が完了します。

オブジェクト指向プログラミングとはどういう意味ですか?

#オブジェクト指向プログラミングとは何ですか?

オブジェクト指向プログラミング (OOP) は、データを使用して一連の命令を表すコーディング設計です。 OOP 設計は、オブジェクトとしてインスタンス化できる特殊なクラスを中心に展開します。

手続き型プログラミングや関数型プログラミングとは異なり、OOP ではコードをより完全に表現する余地が得られます。以前のパラダイムには構造がないことがよくありましたが、OOP ではクラスと呼ばれる特殊な構造の使用が推奨されています。

メソッドは、クラス内の特定のタスクを実行する関数です。プロパティは、クラスの特性を記述する変数のようなものです。メソッドは独立して動作することも、多くの場合クラス プロパティに基づいて動作することもできます。最終的に、この 2 つは協力して OOP の概念を実現します。

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

では、オブジェクト指向プログラミングは、より良いプログラムを作成するのにどのように役立つのでしょうか?

OOP はコード ベースの複雑さを軽減します。

コードを明確に表現し、読みやすくするのに役立ちます。

OOP で書かれたプログラムは、一般的によりスケーラブルです。

コードのテストとデバッグが簡素化されます。

OOP はコードの重複を排除し、DRY (同じことを繰り返さない) 原則を確立します。

OOP コードは通常、よりモジュール化されており、懸念事項の分離が促進されます。

クラスの構成と継承により、コードの再利用が容易になります。

抽象化により、コード ベースのセキュリティが向上します。

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

OOP の利点は欠点を上回りますが、欠点は無視できません:

オブジェクト指向プログラミングよりも遅い場合があります。関数型プログラミング。

OOP は学習曲線が急です。

スクリプト フォルダーとファイルは、アプリケーションの拡張に応じて大きくなります。

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

OOP は厳密なアーキテクチャを中心に展開します。ここで学習する用語をいくつか紹介します。

クラス

クラスは、同様の操作を実行するデータを表すコードのコレクションです。オブジェクト ハンドラーを使用してオブジェクトをインスタンス化できるため、クラスをオブジェクト ハンドラーとして考えることができます。

メソッド

メソッドは、クラスがそのタスクを実行する方法を定義します。クラスには 1 つ以上のメソッドを含めることができます。メソッドは、クラスがそれ自体内で責任を共有する方法と考えることができます。

たとえば、単位コンバータ クラスには、摂氏を華氏に変換するメソッドが含まれる場合があります。グラムをキログラムに変換する別の方法が含まれる場合があります。

属性

属性は、クラスを記述する要素または属性です。たとえば、単位コンバータ クラスには、単位の変換などのプロパティが含まれる場合があります。これらのプロパティに作用するメソッドを定義できます。

メソッドと同様に、クラス インスタンスから (特定の) プロパティにアクセスできます。

オブジェクト

簡単に言えば、オブジェクトはクラスのインスタンスです。クラスをインスタンス化すると、結果として得られるオブジェクトは、そのクラスをそのプロパティとメソッドの設計図として使用します。

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

オブジェクト指向プログラミングは、プログラミングのテーブルにいくつかの原則をもたらします。これらはいずれも従来のプログラミングよりも先を行っています。

抽象化

OOP の抽象的な概念は、何かがどのように機能するかを知る必要がないということです。これにより、プログラムの舞台裏の複雑さを気にせずに、コードを単純な言語でラップすることができます。

たとえば、送信操作の背後にあるロジック、フィルタリング アルゴリズム、関数について心配する必要はありません。ユーザーとして私たちが目にして気にするのは送信ボタンだけです。

オブジェクト指向プログラミングは、単一のタスクを単一の呼び出しとして表すことにより、ロジックを抽象化するのに役立ちます。たとえば、単位コンバータ クラスはバックグラウンドで多くの計算を実行する可能性がありますが、単一のメソッド

class_instance.convert_gram()


# を呼び出すことでキログラムからグラムへのコンバータを実行できます。 # #class_instance がオブジェクト、convert_gram がコンバーター クラスのメソッドです。

カプセル化

カプセル化は、オブジェクト指向プログラミングで抽象化を作成する方法の 1 つです。各オブジェクトは、エンティティとして扱われるデータの集合です。オブジェクト内のデータには、グローバル空間に隠されたプロパティとメソッドが含まれます。

一般に、カプセル化により、クラス データをオブジェクト内にプライベートにラップすることができます。したがって、一方のオブジェクトの内容が他方のオブジェクトに干渉することはありません。オブジェクト固有のメソッドとプロパティのみがそれを変更できます。

たとえば、単位コンバータ オブジェクトのメソッドは、継承または合成を行わずに別のオブジェクトのプロパティを変更してはなりません。

カプセル化を使用すると、パブリック インターフェイスを気にせずにオブジェクトのコンテンツや構造を変更できます。

継承

継承を使用すると、クラス (スーパークラスと呼ばれる) の内容をサブクラスと呼ばれる別のクラスで再利用できます。クラスがスーパークラスから継承すると、そのプロパティとメソッドが自動的に取得されます。

スーパークラスから継承されたプロパティに加えて、サブクラスは独自のプロパティとメソッドを持つこともできます。

たとえば、クラスで外部モジュールからのデータを使用する場合、継承が便利です。また、コードを書くときに同じ作業を繰り返すことがなくなります。

したがって、サブクラスを作成すると、時間を大幅に節約することもできます。すべてに対して新しいクラスを作成する代わりに、基本クラスを作成し、既存の機能を借用してそれを新しいサブクラスに拡張できます。

継承は便利ですが、合成をいつ使用するかを知ることはプログラミングの基本原則です。

ポリモーフィズム

ポリモーフィズムは継承の結果です。これにより、メソッド名またはプロパティ名をさまざまなオブジェクトで維持し、必要に応じて使用できるようになります。

この概念により、クラス メソッドをさまざまなクラスで動的に使用し、基本クラスから継承できることが保証されます。

たとえば、汎用ゲーム オブジェクトは移動メソッドを定義できます。サブクラスは、その特定の動きがどのように発生するかを正確に定義できます。制御コードは、個々のクラスがどのように移動されるかを知る必要はなく、共通のメソッドを介してすべてのクラスを移動できることだけを知っています。

以上がオブジェクト指向プログラミングとはどういう意味ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート