名前が示すように、オブジェクト指向プログラミング (OOP) は、プログラミングでオブジェクトを使用する言語を指します。オブジェクト指向プログラミングは、継承、隠蔽、ポリモーフィズムなどの現実世界のエンティティをプログラミングに実装することを目的としています。 OOP の主な目的は、データとデータ上で動作する関数をバインドして、その関数以外のコードの他の部分がこのデータにアクセスできないようにすることです。
OOP の概念:
- クラス
- オブジェクト
- データの抽象化
- カプセル化
- 継承
- ポリモーフィズム
- 動的バインディング
- メッセージパッシング
1.クラス:
クラスはユーザー定義のデータ型です。これはデータ メンバーとメンバー関数で構成されており、そのクラスのインスタンスを作成することでアクセスして使用できます。これは、1 つのタイプのすべてのオブジェクトに共通するプロパティまたはメソッドのセットを表します。クラスはオブジェクトの設計図のようなものです。
例えば: 車のクラスを考えてみましょう。名前やブランドが異なる多くの車が存在する可能性がありますが、すべての車に 4 つの車輪、制限速度、走行距離などがあるなど、いくつかの共通の特性があります。ここでは、車がクラスであり、車輪、制限速度が、走行距離は彼らの財産です。
2か月ぶり
2. 対象:
これはオブジェクト指向プログラミングの基本単位であり、現実の実体を表します。オブジェクトはクラスのインスタンスです。クラスが定義されるとき、メモリは割り当てられませんが、クラスがインスタンス化される (つまり、オブジェクトが作成される) ときにメモリが割り当てられます。オブジェクトには ID、状態、および動作があります。各オブジェクトには、データとデータを操作するためのコードが含まれています。オブジェクトは、互いのデータやコードの詳細を知らなくても対話できます。受け入れられたメッセージのタイプとオブジェクトによって返された応答のタイプを知っていれば十分です。
たとえば、犬は現実のオブジェクトであり、色、品種、吠え声、睡眠、食事などのいくつかの特徴があります。
Javaは文字列をintに変換します

物体
3. データの抽象化:
データの抽象化は、オブジェクト指向プログラミングの最も本質的かつ重要な機能の 1 つです。データの抽象化とは、データに関する重要な情報のみを外部に提供し、背景の詳細や実装を隠すことを指します。車を運転する男性の実例を考えてみましょう。この男は、アクセルを踏めば車の速度が上がる、ブレーキを踏めば車が止まるということだけは知っているが、アクセルを踏むとどのように速度が上がるのか、車の内部の仕組みは分からない。または車のアクセル、ブレーキなどの実装。これが抽象化というものです。
4. カプセル化:
カプセル化は、データを 1 つの単位にまとめることとして定義されます。これは、コードとコードが操作するデータを結び付けるメカニズムです。カプセル化では、クラスの変数またはデータは他のクラスから隠蔽され、それらが宣言されているクラスのメンバー関数を通じてのみアクセスできます。カプセル化と同様、クラス内のデータは他のクラスから隠蔽されるため、カプセル化とも呼ばれます。 データ隠蔽 。
カプセル化の実例を考えてみましょう。会社には、会計セクション、財務セクション、販売セクションなどのさまざまなセクションがあります。財務セクションはすべての金融取引を処理し、財務に関連するすべてのデータの記録を保持します。同様に、営業セクションは販売に関連するすべての活動を処理し、すべての販売の記録を保管します。ここで、何らかの理由で財務部門の担当者が特定の月の売上に関するすべてのデータを必要とする状況が発生する可能性があります。この場合、営業部門のデータに直接アクセスすることはできません。まず営業部門の他の役員に連絡し、特定のデータを提供するよう依頼する必要があります。これがカプセル化です。ここでは、営業セクションのデータとそれを操作できる従業員が、単一の名前の営業セクションの下にラップされています。
バイナリツリーの順序トラバーサル
5. 継承:
継承は OOP (オブジェクト指向プログラミング) の重要な柱です。クラスが別のクラスからプロパティや特性を派生できる機能は、継承と呼ばれます。クラスを作成するとき、他のクラスからプロパティを継承します。したがって、クラスを作成するときに、すべてのプロパティと関数を何度も記述する必要はありません。これらは、それを所有する別のクラスから継承できるためです。継承により、ユーザーは可能な限りコードを再利用し、コードの冗長性を減らすことができます。
6. 多態性:
Cプログラミングを含む
ポリモーフィズムという言葉は、多くの形式を持つことを意味します。簡単に言うと、ポリモーフィズムは、メッセージを複数の形式で表示できる機能と定義できます。たとえば、人は同時に異なる特性を持つことができます。男性は同時に父親であり、夫であり、従業員でもあるのと同じです。したがって、同じ人でも状況が違えば行動も異なります。これをポリモーフィズムと呼びます。
7. 動的バインディング:
動的バインディングでは、関数呼び出しに応答して実行されるコードは実行時に決定されます。動的バインディングとは、特定のプロシージャ呼び出しに関連付けられたコードが、実行時の呼び出し時まで分からないことを意味します。動的メソッド バインディング 継承の主な利点の 1 つは、一部の派生クラス D がその基本クラス B のすべてのメンバーを持っていることです。D が B のパブリック メンバーをまったく隠さなくなると、D のオブジェクトはどのようなコンテキストでも B を表すことができます。 B が使用できる場合。この機能はサブタイプ多態性として知られています。
8. メッセージパッシング:
これは、オブジェクト指向プログラミングや並列プログラミングで使用される通信形式です。オブジェクトは、相互に情報を送受信することによって相互に通信します。オブジェクトのメッセージはプロシージャの実行要求であるため、受信側オブジェクトで目的の結果を生成する関数を呼び出します。メッセージの受け渡しには、オブジェクトの名前、関数の名前、および送信する情報の指定が含まれます。
なぜオブジェクト指向プログラミングが必要なのか
- プロジェクトの開発とメンテナンスをより簡単に行うため。
- セキュリティ上の懸念に適したデータ隠蔽機能を提供するため。
- オブジェクト指向プログラミングを使用すれば、現実世界の問題を解決できます。
- これにより、コードの再利用性が保証されます。
- これにより、さまざまなデータを処理できる汎用コードを作成できるため、基本的なコードを何度も書く必要がなくなります。