Overview
オブジェクト指向プログラミング(OOP)は、「オブジェクト」という概念に基づいたプログラミングパラダイムであり、オブジェクトには属性として知られるフィールド形式のデータ、および多くの場合メソッドとして知られる手続き形式のコードが含まれることがあります。 オブジェクトの特徴は、オブジェクトのプロシージャが、関連付けられたオブジェクトのデータフィールドにアクセスでき、しばしばそれを変更できることである(オブジェクトには「this」または「self」という概念がある)。 オブジェクト指向言語には大きな多様性がありますが、最も人気のあるものはクラスベースです。つまり、オブジェクトはクラスのインスタンスであり、通常そのクラスが型も決定します。
Discussion
これまで、我々は手続き的プログラミングに焦点を当ててきました。 構造化プログラミングに基づき、手続き(ルーチン、サブルーチン、または関数)は、実行されるべき一連の計算ステップを含んでいる。 任意の手続きは、他の手続きやそれ自身を含め、プログラムの実行中のどの時点でも呼び出される可能性がある。 手続き型プログラミングの焦点は、プログラミング作業を変数、データ構造、サブルーチンの集まりに分解することです。 小規模なプログラムやスクリプトは、単純な手続き的アプローチを使用して簡単に開発できる傾向があります。
オブジェクト指向プログラミングでは、プログラミングタスクをオブジェクトに分解し、インターフェースを使用して動作(メソッド)とデータ(メンバーまたはアトリビュート)を公開します。 最も重要な違いは、手続き型プログラミングが別々のデータ構造を操作するために手続きを使用するのに対し、オブジェクト指向プログラミングはこの2つを束ねるため、クラスのインスタンスである「オブジェクト」はそれ自身のデータ構造を操作することである。 より大規模なプログラムでは、オブジェクト指向のアプローチによって提供される、より良いコードとデータの分離と再利用の恩恵を受けることができます。 実世界のオブジェクトの例として、ドアを考えてみましょう。 ほとんどのドアは限られた機能しか持っていません。 ドアは開いたり閉じたり、ロックしたりアンロックしたりすることができます。 手続き型プログラミングでは、ドアを開けたり閉めたり、ロックしたり、ロックを解除したりする関数を設計します。 メソッドはオブジェクトができることを表し、一般的に動詞を使用して定義されます。 オブジェクト指向のドア疑似コードは次のようになります。
Object-Oriented Programming - Methodsdoor.Open()door.Close()door.Lock()door.Unlock()
オブジェクトは、オブジェクトが持つ属性も持つことができ、通常、名詞または形容詞を使用して定義されます。 ドアの属性には、次のようなものがあります。 ドア・クラスには、ドアが実行できるすべてのメソッドと、ドアが持つすべての属性が含まれます。 その後、家の玄関ドア、裏口ドア、部屋のドア、車の左ドアや右ドアなど、特定のドアを表すクラスのインスタンス(オブジェクト)を作成します。 クラス オブジェクトを作成し、状態の初期値(メンバー変数)と動作の実装(メンバー関数またはメソッド)を提供するための拡張可能なプログラム-コード-テンプレートです。 オブジェクト クラスの特定のインスタンスで、オブジェクトは変数、関数、およびデータ構造の組み合わせになることができる。