C++ または Java を学習したことのある学生は、オブジェクト指向の内容を理解しているはずです。プログラミング言語は一般に、オブジェクト指向とプロセス指向の 2 つの設計方法に分けられます。初期のプログラミング言語は主にプロセス指向であり、複数の言語で構成されていました。 Python はオブジェクト指向言語として設計されたため、Python はオブジェクト指向プログラミング言語です。このセクションでは、まずオブジェクト指向プログラミングの概念について学びます。
まず、オブジェクトとは何かを学ぶ必要があります。オブジェクトは英語で「オブジェクト」といいます。目の前にあるコンピューター、手に持っている携帯電話、または本など、あらゆる場所にオブジェクトがあります。本棚はすべてオブジェクトです。オブジェクトは実際に存在する実体の一種です。
オブジェクトを学習するとき、オブジェクトを 2 つの部分として考えることができます。1 つの部分は属性と呼ばれ、もう 1 つの部分は動作と呼ばれます。
例: 私たちは目覚まし時計を購入しました。目覚まし時計の素材は目覚まし時計の属性であり、目覚まし時計が鳴るときはその動作です。
これまで学習してきたデータ型はすべてクラスに属します。クラスには多くのメソッドが含まれています。クラスを学習するときは、クラスをクラスとして理解する必要があります。教室では中国語、数学、英語を学ぶ必要があります。生徒がこのクラスに参加するとき、クラスはしばしばこれらの科目を学ぶ必要があり、クラスのメンバーは同じ属性と行動を持ちます。
すべての自動車を 1 つのクラスとして考えることもできますし、すべての飛行機を 1 つのクラスとして考えることもできます。クラスは比較的抽象的な概念であり、定義する際には実際の状況に応じて定義する必要があります。
オブジェクト指向プログラミングには、カプセル化、継承、ポリモーフィズムという 3 つの大きな特徴があります。
パッケージングについては、実際の例から学ぶことができます。まず、スピーカーを購入すると、その中に回路基板や回路などの構造物が入っています。内部構造と使用原理を知る必要があるため、これらの構造はボックス内に封入されており、スピーカー内のこれらのものを接続するためのいくつかのインターフェイスがボックスの外側に提供されています。
プログラムを作成するときにカプセル化の概念を使用することもできますが、それらを使用するためのインターフェイスは提供されません。このコンテンツはカプセル化と呼ばれます。
相続というと、誰もが継承を思い浮かべますが、現実の相続は通常 1 対 1 であり、複数の人が取得する相続になります。非常に大きいため、矛盾している可能性があり、プログラム内の継承は完全な継承関係です。
私たちは車をオブジェクトとして考えることができます。メルセデス・ベンツ、BMW、フォルクスワーゲンのいずれであっても、これらの車は車のすべての属性と動作を継承します。車をクラスとみなして、その車に地上走行と 4 本のタイヤの属性を定義します。次に、BMW がこのクラスを継承すると、BMW 車は地上走行と 4 本のタイヤの属性を取得します。車の高速走行の挙動が定義され、BMW 車もその高速走行の挙動を継承します。
継承関係を使用する場合、車を「スーパー クラス」または「親クラス」と呼び、継承された BMW 車を「サブクラス」または「派生クラス」と呼びます。
ポリモーフィズムとは、親クラスが複数の属性を持ち、それらの属性に基づいて複数のサブクラスが派生することを意味します。車を例として、1 つは道路上での走行用、もう 1 つは車上での走行用として定義します。そして、これらの特性の両方に、人を運ぶことができるということが含まれています。サブクラスの継承を定義する場合、2 つのサブクラスを定義できます。1 つは人を乗せることができるが道路を走行する車、もう 1 つは人を乗せることができるが線路上を走行する車です。このようなクラスが派生します。複数のサブクラスがパブリック プロパティとプライベート プロパティを持つ方法をポリモーフィズムと呼びます。
クラスとオブジェクトの 2 つの概念については、どのようなコンピューター業界でも、クラスとオブジェクトの使用は切り離せないものであるため、クラスとオブジェクトとは何かを考えてみましょう。次のセクションでは、クラスの定義と使用法について学びます。