Java における OOP の概念 |基礎と例
OOPS とは?
オブジェクト指向プログラミング システム (OOP) は、抽象化、カプセル化、継承、およびポリモーフィズムの原則に基づいて機能するプログラミングの概念です。ユーザーは、必要なオブジェクトを作成し、それらのオブジェクトを処理するメソッドを作成できます。 OOP の基本的な概念は、オブジェクトを作成し、プログラム全体でそれらを再利用し、これらのオブジェクトを操作して結果を取得することです。
「オブジェクト指向プログラミング」を意味する OOP は、Java などの最新のプログラミング言語で広く知られ、広く使用されている概念です。
Java での OOP 概念のリストと例
以下は、Java における一般的な OOP の概念です:
1) クラス
クラスは、同様のエンティティのグループである OOP の基本概念の 1 つです。これは単なる論理コンポーネントであり、物理エンティティではありません。この OOP コンセプトの 1 つを例で理解してみましょう。「Expensive Cars」というクラスがあれば、メルセデス、BMW、トヨタなどのオブジェクトを持つことができます。そのプロパティ (データ) は、これらの車の価格または速度です。これらの車で実行される方法は、運転、後退、ブレーキなどです。
2) オブジェクト
オブジェクトはクラスのインスタンスとして定義でき、プログラム内にクラスのインスタンスが複数存在する場合があります。オブジェクトは、データとデータを操作する関数の両方を含む Java OOP の概念の 1 つです。たとえば、椅子、自転車、マーカー、ペン、テーブル、車などです。
3) 継承
継承は、1 つのオブジェクトが親オブジェクトのプロパティと動作を取得する OOP の基本概念の 1 つです。 2 つのクラス間に親子関係を作成しています。あらゆるソフトウェアの編成と構造のための堅牢で自然なメカニズムを提供します。
4) ポリモーフィズム
ポリモーフィズムとは、変数、オブジェクト、または関数が複数の形式を取る能力である Java の OOP 概念の 1 つを指します。たとえば、英語の動詞 run は ラップトップで使用すると意味が異なります 、徒競走 、およびビジネス .ここで、run の意味を理解します それと一緒に使用される他の単語に基づいています。同じことがポリモーフィズムにも当てはまります。
5) 抽象化
抽象化は Java の OOP 概念の 1 つで、背景の詳細を含めずに本質的な機能を表現する行為です。これは、特定のアプリケーションに適した新しいデータ型を作成する手法です。この OOP コンセプトの 1 つを例で理解してみましょう。車を運転している間は、その内部の動作を気にする必要はありません。ここでは、ステアリング ホイール、ギア、アクセルなどのパーツに注意する必要があります。
6) カプセル化
カプセル化は、データとコードをラップする Java OOP の最良の概念の 1 つです。この OOP の概念では、クラスの変数は常に他のクラスから隠されています。現在のクラスのメソッドを使用してのみアクセスできます。たとえば、学校では、生徒は授業なしでは存在できません。
7) 協会
関連付けは、2 つのオブジェクト間の関係です。これは、オブジェクト間の多様性を定義する Java の OOP 概念の 1 つです。この OOP の概念では、すべてのオブジェクトに個別のライフサイクルがあり、所有者はありません。たとえば、多くの生徒が 1 人の教師と関連付けることができ、1 人の生徒が複数の教師と関連付けることもできます。
8) 集計
この手法では、すべてのオブジェクトに個別のライフサイクルがあります。ただし、子オブジェクトが別の親オブジェクトに属することができないという所有権があります。たとえば、クラス/オブジェクト部門と教師を考えてみましょう。ここでは、1 人の教師が複数の学科に所属することはできませんが、学科を削除しても教師オブジェクトが破棄されることはありません。
9) 構成
コンポジションは集約の特殊な形式です。 「死」関係ともいう。子オブジェクトにはライフサイクルがないため、親オブジェクトが削除されると、すべての子オブジェクトも自動的に削除されます。そのために、家と部屋の例を見てみましょう。どの家にもいくつかの部屋があります。 1 つの部屋が 2 つの異なる家の一部になることはできません。そのため、家の部屋を削除すると、部屋も削除されます。
OOP (オブジェクト指向プログラミング システム) の利点:
- Java の OOP コンセプトは、理解しやすく、プログラムの明確なモジュール構造を提供します。
- オブジェクト指向プログラム用に作成されたオブジェクトは、他のプログラムで再利用できます。したがって、開発コストを大幅に節約できます。
- 大規模なプログラムを作成するのは困難ですが、開発および設計チームが OOPS の概念に従えば、欠陥を最小限に抑えてより適切に設計できます。
- すべてのオブジェクトが独立して存在するため、プログラムのモジュール性が向上します。
例を使った OOPS と他のプログラミング スタイルの比較
例を挙げて、Java OOP の概念が他のプログラミング アプローチとどのように異なるかを理解しましょう。
プログラミング言語は主に 3 つのタイプに分類できます
<オール>
ビデオにアクセスできない場合は、ここをクリックしてください
例でこれら 3 つのタイプを理解しましょう。
次のような機能を備えたバンキング ソフトウェアを作成するとします。
<オール>非構造化プログラミング言語
すべてのプログラミング言語の最初期は、非構造化プログラミング言語でした。非構造化プログラミング言語の銀行アプリケーションの非常に基本的なコードには、1 つの口座番号と口座残高用の別の 2 つの変数があります
int account_number=20; int account_balance=100;
100 ドルのデポジットが行われたとします。
account_balance=account_balance+100
次に、口座残高を表示する必要があります。
printf(“Account Number=%d,account_number) printf(“Account Balance=%d,account_balance)
これで 50 ドルが引き落とされました。
account_balance=account_balance-50
ここでも、口座残高を表示する必要があります。
printf(“Account Number=%d,account_number) printf(“Account Balance=%d,account_balance)
それ以降の入出金操作では、同じ行を何度も繰り返してコードを記述します。
構造化プログラミング
構造化プログラミングの登場により、コードの繰り返し行は関数やメソッドなどの構造に組み込まれました。必要に応じて、関数への単純な呼び出しが行われます。
オブジェクト指向プログラミング
私たちのプログラムでは、データを扱ったり、データに対して特定の操作を実行したりしています。
実際、データを取得し、そのデータに対して特定の操作を実行することは、ソフトウェア プログラムの非常に基本的な特徴です。
ソフトウェア プログラミングの専門家は、データと操作を組み合わせることを考えました。したがって、一般に OOPS と呼ばれるオブジェクト指向プログラミングの誕生です。
オブジェクト指向プログラミング言語の同じコードには、同じデータがあり、そのデータに対して何らかのアクションが実行されます。
Class Account{ int account_number; int account_balance; public void showdata(){ system.out.println(“Account Number”+account_number) system.outprintln(“Account Balance”+ account_balance) } }
データとアクションを組み合わせることで、構造的プログラミングよりも多くの利点が得られます。
- 抽象化
- カプセル化
- 継承
- ポリモーフィズム
これらについては、以降のチュートリアルで詳しく説明します
Java