すべてのプログラマーが知っておくべきOOPの概念と例

公開: 2021-02-26

この記事では、オブジェクト指向プログラミングに関する基本的な概念を取り上げ、一般的に使用される用語である抽象化、カプセル化、継承、およびポリモーフィズムについて説明します。

まず、OOPは、プログラマーがオブジェクトを作成し、その操作にそのようなオブジェクトを必要とする関数内でプログラム全体でそれらを使用することを要求するプログラミング方法論です。 OOPの概念がJavaで広く使用されている理由は、セキュリティを維持しながらコードの再利用を可能にするためです。

オブジェクト指向プログラミングの4つの柱について説明する前に、オブジェクト指向言語(Java、Python、C ++)を使用するときによく耳にする一般的な用語を理解しましょう。

目次

クラス

クラスは、特定のタイプのすべてのオブジェクトに共通する一連のプロパティを定義するオブジェクトのコレクションです。 オブジェクトを作成するための青写真とも呼ばれます。 クラスには、次のコンポーネントが含まれます。

クラス名:大文字のアルファベットで始まるクラスに付けられた名前。

修飾子:クラスの機能に基づいて、修飾子はpublic、private、またはdefaultのいずれかになります。

本文クラスの本文には、クラスに存在するオブジェクトのすべてのコードが含まれます。 これは、変数の宣言から、オブジェクトの機能を含むコンストラクターまたはメソッドの作成にまで及ぶ可能性があります。

物体

オブジェクトはクラスのインスタンスとして定義され、実際のエンティティが含まれています。 たとえば、Animalsというクラスの場合、そのオブジェクトは猫、犬、象などになります。 各オブジェクトには、独自のID、属性、および動作があります。 以下のコードは、Java言語でプログラミングする際のクラス、オブジェクト、およびメソッドの使用を示しています。

メソッド

メソッドはクラス内で定義され、特定の機能を実行するために使用されます。 メソッドには、入力パラメーターが含まれる場合と含まれない場合があります。 以下のコードは、Java言語でプログラミングする際のクラス、オブジェクト、およびメソッドの使用を示しています。

上記のコードでは、Playerはクラスに付けられた名前ですが、runsはBatsmanメソッドで渡されるパラメーターであり、myobjというオブジェクトを介して呼び出されたときに彼がスコアリングしたランを返します。

アクセス修飾子

Javaのアクセス修飾子は、メソッド、コンストラクター、またはクラスのアクセシビリティーまたはエクステントを定義します。 アクセス修飾子の4つのタイプは次のとおりです。

  1. パブリッククラス内に記述されたコードは、他のクラスからアクセスできます。
  2. プライベート記述されたコードは、その特定のクラス内でのみアクセス可能です。
  3. デフォルト記述されコードは、同じパッケージ内でアクセス可能です。
  4. 保護コードは、パッケージ内およびサブクラスを介してアクセスできます。 子クラスがない場合、コードにアクセスできません。

それでは、先に進んで、オブジェクト指向プログラミングの核心について話しましょう。

継承

継承という用語は、あるクラスのプロパティを別のクラスに継承することを指します。 プロパティは、親クラスの属性とメソッドを参照します。 親クラスは、プロパティを他のクラスに継承する必要があるクラスです。 親クラスのプロパティを継承するクラスは、子クラスまたはサブクラスと呼ばれます。 親クラスのプロパティを子クラスに継承するには、 extendsというキーワードを使用します。

上記の例では、スポンサーは親クラスであり、所有者がその属性です。 親クラスのスポンサーを継承するTeamというサブクラスを作成しました。 親クラスのプロパティにアクセスできるTeamのオブジェクトを作成しました。 上記のコードの出力は次のとおりです。

ポリモーフィズム

名前が示すように-ポリモーフィズムは、変数または関数が複数の形式で存在する能力です。 ポリモーフィズムにより、プログラマーは同じ変数または関数を使用してさまざまなタスクを実行できます。 ポリモーフィズムの実際の例は、オープングラウンドを検討することです。現在、このグラウンドはスポーツをするために使用できます。

また、結婚式やコンサートの開催にも使用できます。 最後に、同じ地面を駐車車両に使用できます。 このことから、1つの変数は、その使用法に応じて複数の実装を持つことができると推測できます。

私たちが通常遭遇するポリモーフィズムは、メソッドのオーバーロードメソッドのオーバーライドという2つの用語に出くわします

メソッドのオーバーロード、単一のメソッドをさまざまな方法で使用して、さまざまな機能を実行できます。 メソッドの名前は同じですが、入力として異なるパラメーターを使用できます。

メソッドのオーバーライド、親クラスのメソッドを子クラスでオーバーライドできます。 これにより、親クラスと子クラスによって呼び出された場合、同じメソッドのパフォーマンスが異なる可能性があります。

多型の例を以下に示します。

この例では、同じ方法を使用して複数のタスクを実行できます。 同じ方法で、Birdで使用した場合のVoiceは「TurrTurr」を出力し、Duckで使用した場合は「QuackQuack」を出力します。 出力のスナップショットを以下に示します-

抽象化

抽象化とは、特定のデータをユーザーから隠し、必要な情報のみをユーザーに表示するプロセスです。 たとえば、車を運転している間は、内部の機能やメカニズムについては気にしません。 私たちに示されているのは、車が運転されている速度と利用可能なガソリンのリットルです。 他のすべての周辺化されたデータは、ドライバーに表示されません。

abstractキーワードは、抽象化を実行する際のメソッドとクラスに使用されます。 抽象クラスの場合、オブジェクトを作成することはできませんが、抽象メソッドに本体を含めることはできません。 2つのルールのいずれかに違反した場合、出力はエラーを生成します。

ここでは、メインクラスのBirdから継承されたサブクラスのDuckのオブジェクトを作成しました。 出力を以下に示します。

カプセル化

カプセル化は、コードとデータを1つのユニットにバインドするプロセスです。 ここで、クラスの変数は(キーワードprivateを使用して)他のクラスから隠されていますが、メンバー関数を介してのみアクセスできます。 セッター関数とゲッター関数は、抽象クラスのプライベート変数にアクセスするために使用されます。

これまで、Javaを使用したオブジェクト指向プログラミングに関連するすべてのものをカバーしてきました。 結論を出す前に、OOPの概念の利点のいくつかを見てみましょう。

  1. コードは簡単に再利用できるため、コードの開発にかかる時間とコストを大幅に節約できます。
  2. これは、コードを適切に構造化された方法で設計するのに役立ち、新しいプログラマーがコードを理解するために長い時間を費やす必要がなくなります。
  3. ユーザーがコードを効率的に記述できるようにするだけでなく、セキュリティが損なわれないようにします。

チェックアウト: OOPインタビューの質問と回答

世界のトップ大学からオンラインでソフトウェアコース学びましょう。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。

結論

結論として、このブログでは、OOPの基本的な概念について説明しました。 これらの概念は、業界やその他のアプリケーションで広く使用されています。 熟練したプログラマーになるためには、これらの概念をしっかりと理解している必要があります。 今後のブログでは、このドメインの専門知識を開発するのに役立つ他のいくつかの重要なプログラミングの概念を明らかにします。

フルスタックソフトウェア開発の詳細に興味がある場合は、upGrad&IIIT-Bのフルスタックソフトウェア開発のエグゼクティブPGプログラムをチェックしてください。これは、働く専門家向けに設計されており、500時間以上の厳格なトレーニング、9以上のプロジェクト、および割り当て、IIIT-B卒業生のステータス、実践的な実践的なキャップストーンプロジェクト、トップ企業との仕事の支援。]

階乗とは何ですか?

階乗は、与えられた数とその下のすべての数の積を数える数学演算です。 階乗は、数値に1を掛けた回数を示す積です。 たとえば、5の階乗は5x4x3x2x1で、これは120に相当します。1の階乗は1で、0の階乗も1です。数値の階乗を見つけるプログラムは、最もよく聞かれるインタビューの質問であり、何かです。それはあなたの手の先端にあるはずです。

階乗再帰プログラムの書き方は?

数nの階乗はnとして定義されます! =1×2×3×4×…×n。 5の階乗は120です。階乗関数はfactorial(5)= 120として定義されます。再帰関数は、それ自体を呼び出す関数です。 これは、再帰的なスタイルの階乗関数の例です。factorial(n)= n * factorial(n-1)。 階乗再帰プログラムの記述は非常に簡単で、コードは反復バージョンと非常によく似ています。 反復バージョンを作成するには、nという変数を使用し、それを1つインクリメントして、nの連続する値を追跡するprodという変数を掛けます。 出力値は、prodという変数にも格納されます。 再帰バージョンでは、nという変数を引き続き使用します。 ただし、prodの値を格納するための変数は必要なく、関数から直接prodを返すことができます。

プログラミングの再帰とは何ですか?

recursionという単語は、ラテン語のrecurrereに由来します。これは、戻ることを意味します。 ほとんどのプログラミング言語では、それ自体を呼び出す関数は再帰と呼ばれます。 このループプロセスは、再帰関数で定義されていない基本ケースに到達するまで続きます。 再帰は、構造化され組織化された方法で問題を解決するための効果的な手法です。 これは優れたプログラミング戦略です。 たとえば、フィボナッチ数列の問題、階乗の問題などは、反復的な方法と再帰的な方法の両方で解決できます。