logo

Java におけるオブジェクト指向プログラミング (OOP) の概念

名前が示すように、オブジェクト指向プログラミングまたは Java OOP の概念は、プログラミングでオブジェクトを使用する言語を指し、コード内で実行されることを実装するための主要なソースとしてオブジェクトを使用します。オブジェクトは閲覧者またはユーザーに表示され、割り当てられたタスクを実行します。

ハッシュテーブルJava

オブジェクト指向プログラミングは、プログラミングにおける継承、隠蔽、ポリモーフィズムなどの現実世界のエンティティを実装することを目的としています。 OOP の主な目的は、データとデータ上で動作する関数をバインドして、その関数以外のコードの他の部分がこのデータにアクセスできないようにすることです。



メソッド宣言とメッセージパッシングの概念を磨き上げて、前提条件について説明します。メソッド宣言から始まり、次の 6 つのコンポーネントで構成されます。

  • アクセス修飾子 : を定義します。 アクセスタイプ メソッドの、つまりアプリケーション内のどこからアクセスできるか。 Java には、次の 4 種類のアクセス指定子があります。
    • 公共: アプリケーション内のすべてのクラスでアクセスできます。
    • 保護されています: 定義されているパッケージ内およびそのパッケージ内でアクセス可能 サブクラス (パッケージ外で宣言されたサブクラスを含む)
    • プライベート: 定義されているクラス内でのみアクセス可能です。
    • デフォルト (修飾子を使用せずに宣言/定義): 同じクラスおよびそのクラスが定義されているパッケージ内でアクセスできます。
  • 戻り値の型 : メソッドによって返される値のデータ型、または値を返さない場合は void。
  • メソッド名 : フィールド名の規則はメソッド名にも適用されますが、規則は少し異なります。
  • パラメータ一覧 : 定義されている入力パラメータのカンマ区切りリスト。括弧内にそのデータ型が前にあります。パラメータがない場合は、空のかっこ () を使用する必要があります。
  • 例外リスト : メソッドがスローすると予想される例外。これらの例外を指定できます。
  • メソッド本体 : これは、目的の操作を実行するために実行する必要がある、中括弧で囲まれたコードのブロックです。

メッセージパッシング : オブジェクトは、相互に情報を送受信することによって相互に通信します。オブジェクトのメッセージはプロシージャの実行要求であるため、受信側オブジェクトで目的の結果を生成する関数を呼び出します。メッセージパッシングには、オブジェクトの名前、関数の名前、および送信する情報の指定が含まれます。

Java で OOP をマスターする Educative の対話型コースでオブジェクト指向プログラミングの基礎を構築することで、よりクリーンでモジュール化された再利用可能な Java コードを作成します。 Java でのオブジェクト指向プログラミング 。コードを使用して Educative.io にサインアップします GEEKS10 サブスクリプションを 10% 節約できます。

基本的な前提条件を説明したので、次は OOP の 4 つの柱に進みます。ただし、オブジェクト指向プログラミング言語のさまざまな特性について学ぶことから始めましょう。

OOPS の概念は次のとおりです。

  1. クラス
  2. 物体
  3. 方法 そして メソッドの受け渡し
  4. OOP の柱
    • 抽象化
    • カプセル化
    • 継承
    • ポリモーフィズム
      • コンパイル時のポリモーフィズム
      • ランタイムポリモーフィズム

クラス オブジェクトの作成元となるユーザー定義のブループリントまたはプロトタイプです。これは、1 つのタイプのすべてのオブジェクトに共通するプロパティまたはメソッドのセットを表します。クラスを使用すると、コードを複数回記述する代わりに、同じ動作を持つ複数のオブジェクトを作成できます。これには、コード内で複数回出現するオブジェクトのクラスが含まれます。一般に、クラス宣言には次のコンポーネントを順番に含めることができます。

  1. 修飾子 : クラスはパブリックにすることも、デフォルトのアクセス権を持つこともできます (「 これ 詳細については)。
  2. クラス名: クラス名は、慣例に従って頭文字を大文字で始める必要があります。
  3. スーパークラス (存在する場合): クラスの親 (スーパークラス) がある場合、その名前の前にキーワード extends が続きます。クラスは 1 つの親のみを拡張 (サブクラス化) できます。
  4. インターフェース (存在する場合): クラスによって実装されるインターフェイスのコンマ区切りのリスト (存在する場合) の前にキーワードが続きます。クラスは複数のインターフェイスを実装できます。
  5. 体: クラス本体は中括弧 { } で囲まれています。

オブジェクト は、現実の実体を表すオブジェクト指向プログラミングの基本単位です。典型的な Java プログラムは多くのオブジェクトを作成し、ご存知のとおり、メソッドを呼び出すことで相互作用します。オブジェクトはコードを実行するものであり、閲覧者/ユーザーに見えるコードの一部です。オブジェクトは主に次のもので構成されます。

  1. : オブジェクトの属性によって表されます。また、オブジェクトのプロパティも反映されます。
  2. 行動 : オブジェクトのメソッドによって表現されます。また、他のオブジェクトに対するオブジェクトの反応も反映します。
  3. 身元 : オブジェクトに与えられる一意の名前で、オブジェクトが他のオブジェクトと対話できるようにします。
  4. 方法 : メソッドは、特定のタスクを実行し、呼び出し元に結果を返すステートメントのコレクションです。メソッドは、何も返さずに特定のタスクを実行できます。メソッドにより、次のことが可能になります。 再利用 コードを再入力せずにそのまま保存できるため、これらは考慮されます。 時間の節約 。 Java では、すべてのメソッドが何らかのクラスの一部である必要があります。これは、次のような言語とは異なります。 C C++ 、 そして パイソン

クラスとオブジェクトを 1 つの単純な Java プログラムにまとめたものです。

ジャワ
public class GFG {    static String Employee_name;  static float Employee_salary;  static void set(String n, float p) {  Employee_name = n;  Employee_salary = p;  }  static void get() {  System.out.println('Employee name is: ' +Employee_name );  System.out.println('Employee CTC is: ' + Employee_salary);  }  public static void main(String args[]) {  GFG.set('Rathod Avinash', 10000.0f);  GFG.get();  } }>

出力
Employee name is: Rathod Avinash Employee CTC is: 10000.0>

ここで、OOP の 4 つの柱について説明します。

柱 1: 抽象化

データ 抽象化 は、重要な詳細のみがユーザーに表示されるプロパティです。重要ではない単位や重要でない単位はユーザーには表示されません。例: 車は、個々のコンポーネントではなく、車として見られます。
データ抽象化は、無関係な詳細を無視して、オブジェクトの必要な特性のみを識別するプロセスとしても定義できます。オブジェクトのプロパティと動作は、そのオブジェクトを同様のタイプの他のオブジェクトと区別し、オブジェクトの分類/グループ化にも役立ちます。

車を運転する男性の実例を考えてみましょう。この男性は、アクセルを踏めば車の速度が上がる、ブレーキを踏めば車が止まるということだけは知っていて、どのようにアクセルを踏めば実際に速度が上がるのかは知りません。彼は車の内部機構や車のアクセル、ブレーキなどの実装については知りません。これが抽象化というものです。

Java では、抽象化は次のようにして実現されます。 インターフェース そして 抽象クラス 。インターフェースを使用すると 100% の抽象化を達成できます。

抽象メソッドにはメソッド宣言のみが含まれ、実装は含まれません。

Androidのimessageゲーム

Abstractクラスのデモ

ジャワ
//abstract class abstract class GFG{  //abstract methods declaration  abstract void add();  abstract void mul();  abstract void div(); }>

柱 2: カプセル化

これは、データを 1 つの単位にまとめることとして定義されます。これは、コードとコードが操作するデータを結び付けるメカニズムです。カプセル化についてのもう 1 つの考え方は、カプセル化は、このシールドの外側のコードによるデータへのアクセスを防ぐ保護シールドであるということです。

  • 技術的には、 カプセル化 、クラス内の変数またはデータは他のクラスから隠蔽され、それらが宣言されているクラスのメンバー関数を通じてのみアクセスできます。
  • カプセル化では、クラス内のデータは他のクラスから隠されます。これは、次のようなものです。 データ隠蔽 そうです。したがって、カプセル化とデータ隠蔽という用語は同じ意味で使用されます。
  • カプセル化は、クラス内のすべての変数をプライベートとして宣言し、変数の値を設定および取得するためのパブリック メソッドをクラス内に記述することで実現できます。

カプセル化のデモンストレーション:

ジャワ
//Encapsulation using private modifier  //Employee class contains private data called employee id and employee name class Employee {  private int empid;  private String ename; }>

柱 3: 継承

継承 は OOP (オブジェクト指向プログラミング) の重要な柱です。これは、あるクラスが別のクラスの機能 (フィールドとメソッド) を継承できるようにする Java のメカニズムです。を使用して継承を実現しています 伸びる キーワード。継承とも呼ばれます は、です 関係。

頻繁に使用される重要な用語について説明します。

  • スーパークラス: 機能が継承されるクラスはスーパークラスと呼ばれます (基本クラスまたは親クラスとも呼ばれます)。
  • サブクラス: 他のクラスを継承するクラスはサブクラス (派生クラス、拡張クラス、子クラスとも呼ばれます) と呼ばれます。サブクラスは、スーパークラスのフィールドとメソッドに加えて、独自のフィールドとメソッドを追加できます。
  • 再利用性: 継承は再利用性の概念をサポートしています。つまり、新しいクラスを作成するときに、必要なコードの一部を含むクラスがすでに存在する場合、既存のクラスから新しいクラスを派生できます。こうすることで、既存のクラスのフィールドとメソッドを再利用します。

継承のデモンストレーション:

ジャワ
//base class or parent class or super class class A{  //parent class methods  void method1(){}  void method2(){} } //derived class or child class or base class class B extends A{ //Inherits parent class methods  //child class methods  void method3(){}  void method4(){} }>

柱 4: ポリモーフィズム

これは、同じ名前を持つエンティティを効率的に区別するオブジェクト指向プログラミング言語の機能を指します。これは、これらのエンティティの署名と宣言を使用して Java によって行われます。さまざまな形で現れる能力は、 多態性

例えば。

ジャワ
sleep(1000) //millis sleep(1000,2000) //millis,nanos>

注記: Java のポリモーフィズムには主に 2 つのタイプがあります。

  1. 過負荷
  2. オーバーライド

Java抽象クラス
ジャワ
// Java program to Demonstrate Polymorphism // This class will contain // 3 methods with same name, // yet the program will // compile & run successfully public class Sum {  // Overloaded sum().  // This sum takes two int parameters  public int sum(int x, int y)  {  return (x + y);  }  // Overloaded sum().  // This sum takes three int parameters  public int sum(int x, int y, int z)  {  return (x + y + z);  }  // Overloaded sum().  // This sum takes two double parameters  public double sum(double x, double y)  {  return (x + y);  }  // Driver code  public static void main(String args[])  {  Sum s = new Sum();  System.out.println(s.sum(10, 20));  System.out.println(s.sum(10, 20, 30));  System.out.println(s.sum(10.5, 20.5));  } }>

出力
30 60 31.0>

結論

Java のオブジェクト指向プログラミング (OOP) の概念は、コードを編成して記述するための強力な方法です。クラス、オブジェクト、継承、ポリモーフィズム、カプセル化、抽象化などの重要なアイデアを使用して、柔軟で再利用可能なコードを作成します。 Java OOP の概念を使用すると、プログラマは複雑なアプリケーションをより効率的に構築でき、コードの管理、理解、変更が容易になります。全体として、Java の OOP の概念は、堅牢でスケーラブルなソフトウェア ソリューションの作成に役立ちます。

Java のオブジェクト指向プログラミング (OOP) の概念 – FAQ

Java における OOP の概念とは何ですか?

OOP (オブジェクト指向プログラミング) はオブジェクトの概念に基づいたプログラミング パラダイムであり、フィールド (属性またはプロパティ) の形式でデータを含めることができ、プロシージャ (メソッドまたは関数) の形式でコードを含めることができます。 Java では、OOP の概念には、カプセル化、継承、ポリモーフィズム、および抽象化が含まれます。

Java で OOP が重要なのはなぜですか?

OOP は、より管理しやすい方法でコードを編成および構造化するのに役立ち、Java アプリケーションの保守と拡張が容易になります。また、コードの再利用性、モジュール性、柔軟性も促進され、効率的で堅牢なソフトウェア開発につながります。

Java における OOP の主な原則は何ですか?

Java における OOP の主な原則は、カプセル化、継承、ポリモーフィズム、および抽象化です。カプセル化により、オブジェクトの内部状態が隠蔽され、パブリック メソッドを介してのみアクセスできるようになります。継承により、あるクラスが別のクラスからプロパティと動作を継承できます。ポリモーフィズムにより、オブジェクトをその親クラスのインスタンスとして扱うことができます。抽象化は、実装の詳細を隠し、必要な情報のみを外部に表示することに重点を置いています。

Java では OOP はどのように実装されますか?

Java では、OOP はクラスとオブジェクトを通じて実装されます。クラスは、そのクラスのインスタンスであるオブジェクトを作成するための設計図として機能します。各オブジェクトには、独自の属性 (変数) とメソッド (関数) のセットがあります。カプセル化、継承、ポリモーフィズム、抽象化などの OOP の概念に従うことで、Java 開発者は適切に構造化された保守しやすいコードを設計できます。

Java で OOP を使用する利点は何ですか?

Java で OOP を使用する利点には、コードの再利用性、モジュール性、柔軟性、スケーラビリティ、メンテナンスの容易さなどがあります。 OOP を使用すると、開発者は現実世界のエンティティをオブジェクトとしてモデル化し、より直観的で組織化されたコードを作成できるようになります。また、Java アプリケーションの拡張性と可読性を向上させる継承やポリモーフィズムなどの機能もサポートしています。

Java での OOP の概念の実装例を教えてください。

もちろん! Java での OOP の概念実装の例は、「make」、「model」、「year」などの属性を持つ「Car」クラスと、「start()」、「accelerate()」、「stop」などのメソッドを作成することです。 ()」。 「Car」クラスからオブジェクトをインスタンス化し、そのメソッドを呼び出すことで、構造化されたオブジェクト指向の方法でさまざまな車のインスタンスの動作をシミュレートできます。