例を使用したJavaでの構成とは
公開: 2021-04-09Javaは、2つのクラス間の関係を構築することで、オブジェクト指向プログラミングとコードの再利用性をサポートする多用途の言語です。 Javaには、コードを再利用し、あるクラスから別のクラスへの重複を減らすために使用される2種類の関係または関連付けがあります。
これらの関係は、IS-A(継承)とHAS-A(関連付け)です。 IS-Aクラスの間には緊密な結合がありますが、HAS-Aクラスは緩く結合されており、プログラマーにとってより望ましいものです。
HAS-Aの関係は、Javaでの集約と構成の2つのタイプに分けられます。 この記事は、 OOPの構成概念に基づいています。 コンポジションがどのようにコーディングされ、実装されたときに得られる利点の多くの実際の例を見ることができます。
目次
Javaでの関連付けまたは関係の簡単なナレーション
オブジェクト指向プログラミングでは、オブジェクトは相互に関連しており、オブジェクト間の共通機能を使用します。 ここで、 Javaプログラムの継承、関連付け、集約、および構成のトピックが取り上げられます。
Javaでの継承(IS-A)と関連付け(HAS-A)
1.継承(IS-A)
IS-A関係は、あるオブジェクトが別のオブジェクトのタイプであることを意味します。 'extends'および'implements'キーワードを使用して実装されます。
例: HPIS-ラップトップ
2.協会(HAS-A)
HAS-関係は、クラスが別のクラスと関係を持っていることを意味します。 たとえば、クラスAはクラスBの参照を保持し、クラスBのすべてのプロパティにアクセスできます。
例:人体HAS-心臓
ソース
ソース
3.アグリゲーションとコンポジション
持っている-関係または関連付けは、集約と構成に分けることができます。 集約コンテナクラスと参照クラスは、独立して存在できます。 コンテナクラスが破棄された場合、コンポジション参照クラスは存在できません。
集約と構成を理解するために例を見てみましょう。 車には、エンジン、ホイール、音楽プレーヤーなどの部品があります。車はエンジンとホイールなしでは機能できませんが、音楽プレーヤーなしでは機能できます。 ここで、エンジンと車は合成関係にあり、車と音楽プレーヤーは集約関係にあります。 集約の場合、オブジェクトはメインオブジェクトの一部でなくても存在できます。
ソース
Javaでの構成
あるクラスと別のクラスの間に強い関係がある場合、互いに関連付けられた2つのオブジェクト間のJavaの構成が存在します。 他のクラスは、所有者または親クラスなしでは存在できません。 たとえば、「人間」クラスは心臓と肺の構成です。 人間の物体が死ぬとき、誰の部分も存在しません。
構成は、制限された形式の集約です。 コンポジションでは、あるクラスに別のクラスが含まれ、それに依存しているため、別のクラスがないと機能的に存在できません。
Javaでの構成の実装
エンジンと車の関係は、以下のようにJavaクラスを使用して実装されます。 Javaでは、「final」キーワードはコンポジションを表すために使用されます。 これは、「Owner」オブジェクトが、 「final」にすることでパーツオブジェクトが使用可能で機能することを期待しているためです。
パブリッククラスカー{
プライベートファイナルエンジンエンジン;
公用車(){
engine = new Engine();
}
}
クラスエンジン{
プライベート文字列型。
}
継承と構成の両方を表す別の例を見てみましょう。
ソース
このプログラムでは、クラスHondaは車であり、クラスCarから拡張されています。 車のエンジンObjectはホンダクラスで使用されます。
クラスCarEngine{ public void StartEngine(){ System.out.println( "車のエンジンが始動しました。"); } public void stopEngine(){ System.out.println( "車のエンジンが停止しました。"); } } クラスカー{ プライベートストリングカラー; private int maxi_Speed; public void carDetails(){ System.out.println(“ Car Colour =“ + colour +“; Maximum Speed =” + maxi_Speed); } //車の色を設定します public void setColour(String colour){ this.colour = colour; } //車の最高速度を設定する public void setMaxiSpeed(int maxi_Speed){ this.maxi_Speed = maxi_Speed; } } クラスホンダは車を拡張します{ public void HondaStart(){ CarEngine Honda_Engine = new CarEngine(); //構成 Honda_Engine.startEngine(); } } パブリッククラスメイン{ public static void main(String [] args){ ホンダHondaJazz=new Honda(); HondaJazz.setColour( "ブラック"); HondaJazz.setMaxSpeed(160); HondaJazz.carDetails(); HondaJazz.HondaStart(); } } |
出力:
車の色=黒; 最高速度=160
車のエンジンが始動しました。
出力は構成を使用して導出され、ホンダジャズカーの詳細を示しています。
アソシエーションのUML表示
クラスAとBの間のJavaでの関連付け、集約、および構成の関係は、UML図で次のように表されます。
アソシエーション:A ---> B
構成:A-<filled> B
集計:A-<> B
世界のトップ大学からソフトウェアエンジニアリングの学位をオンラインで取得します。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。
Javaでの構成の利点
Javaで構成設計手法を使用すると、次の利点があります。
- 「クラスの継承よりもオブジェクトの構成を優先する」ことは常に可能です。 クラスは、構成によってポリモーフィズムとコードの再利用を実現します。
- 構成は柔軟であり、インクルードされたオブジェクトを変更することで実行時にクラスの実装を変更し、その動作を変更できます。
- 構成ベースの設計では、クラスの数が少なくなります。
- クラス間の「HAS-A」関係は、「IS-A」関係よりも意味的に正しいです。
- Javaでの構成は、テスト駆動開発で特に役立つ、より優れたクラステスト容易性を提供します。
- 複数のオブジェクトを1つに構成することで、言語の「多重継承」を実現できます。
- 構成では、メソッドまたはプロパティ名の間に競合はありません。
結論
Javaでの構成は、プログラミング中に多くの利点を提供し、好まれる設計方法の1つです。 この記事では、実際の例と実際のコードを使用して、この重要な概念を理解してもらうように努めました。 構成は、柔軟性と堅牢なコードを提供します。 そのコードの再利用機能は、コードの重複を回避し、費用対効果を達成するのに役立ちます。 これにより、さまざまなプログラムで広く使用されている方法の1つになります。
ソフトウェア開発のスキルを学び、アップグレードすることを目的としたコンピュータサイエンスコースで、upGradの理学修士を使用してJavaで作曲を学びます。
適格性
50%または同等のマークを持つAB学士号。 初期のコーディング経験は必要ありません。
価格設定
プログラム料金は、インド居住者の場合は月額Rs.13、095、海外居住者の場合は5999米ドルからです。