Ce este compoziția în Java cu exemple

Publicat: 2021-04-09

Java este un limbaj versatil care acceptă programarea orientată pe obiecte și reutilizarea codului cu construirea de relații între două clase. Există două tipuri de relații sau asocieri în Java folosite pentru a reutiliza un cod și pentru a reduce duplicitatea de la o clasă la alta.

Aceste relații sunt IS-A (Moștenire) și HAS-A (Asociere). În timp ce există o cuplare strânsă între clasele IS-A, clasele HAS-A sunt slab cuplate și mai preferabile pentru programatori.

Relația HAS-A este împărțită în două tipuri, și anume, agregare și compoziție în Java . Acest articol se bazează pe conceptul OOP al compoziției. Vom vedea multe exemple din viața reală a modului în care este codificată compoziția și a avantajelor obținute atunci când este implementată.

Cuprins

O scurtă povestire a asociațiilor sau relațiilor în Java

În programarea orientată pe obiecte, obiectele sunt legate între ele și folosesc funcționalitatea comună dintre ele. Aici apar subiectele de moștenire, asociere, agregare și compoziție în programele Java.

Moștenire (IS-A) și asociere (HAS-A) în Java

1. Moștenire (IS-A)

O relație IS-A înseamnă că un obiect este un tip al altuia. Este implementat folosind cuvintele cheie „extinde” și „implementează”.

Exemplu: laptop HP IS-A

2. Asociație (HAS-A)

O relație HAS-A înseamnă că o clasă are o relație cu o altă clasă. De exemplu, clasa A deține referința clasei B și poate accesa toate proprietățile clasei B.

Exemplu: corpul uman ARE-O inimă

Sursă

Sursă

3. Agregare Vs Compoziție

Relația sau Asociația Are-A poate fi împărțită în agregare și compoziție. O clasă de container de agregare și o clasă de referință pot avea o existență independentă. O clasă de referință de compoziție nu poate exista dacă clasa container este distrusă.

Să luăm un exemplu pentru a înțelege agregarea și compoziția. O mașină are părțile sale, de exemplu, motoare, roți, music player etc. Mașina nu poate funcționa fără un motor și roți, dar poate funcționa fără un music player. Aici motorul și mașina au o relație de compoziție, iar mașina și playerul muzical au o relație de agregare. În cazul agregării, un obiect poate exista fără a face parte din obiectul principal.

Sursă

Compoziție în Java

O compoziție în Java între două obiecte asociate unul cu celălalt există atunci când există o relație puternică între o clasă și alta. Alte clase nu pot exista fără clasa proprietară sau părinte. De exemplu, o clasă „Uman” este o compoziție de inimă și plămâni . Când obiectul uman moare, nimeni nu există părți.

Compoziția este o formă restrânsă de agregare. În Compoziție, o clasă include o altă clasă și este dependentă de aceasta, astfel încât nu poate exista funcțional fără o altă clasă.

Implementarea Compoziției în Java

Relația dintre motor și mașină este implementată folosind clase Java, ca mai jos. În Java, cuvântul cheie „final” este folosit pentru a reprezenta Compoziția. Acest lucru se datorează faptului că obiectul „Proprietar” se așteaptă ca un obiect parte să fie disponibil și să funcționeze făcându-l „final” .

mașină de clasă publică {

motor final privat ;

mașină publică (){

motor = motor nou ();

}

}

clasa motor {

tip String privat ;

}

Să luăm un alt exemplu care descrie atât moștenirea, cât și compoziția.

Sursă

În acest program, clasa Honda este o Mașină și se extinde din clasa Mașină. Motorul auto Object este utilizat în clasa Honda.

clasa CarEngine {

public void StartEngine(){

System.out.println(“ Motorul mașinii a pornit .”);

}

public void stopEngine(){

System.out.println(“ Motorul mașinii s-a oprit .”);

}

}

mașină de clasă {

culoare privată șir;

private int maxi_Speed;

public void carDetails(){

System.out.println(„Culoarea mașinii= „+culoarea + „; Viteza maximă= ” + maxi_Speed);

}

//Setarea culorii mașinii

public void setColour(culoarea șirului) {

aceasta.culoare = culoare;

}

//Setarea vitezei maxime a mașinii

public void setMaxiSpeed(int maxi_Speed) {

this.maxi_Speed ​​= maxi_Speed;

}

}

clasa Honda extinde mașina{

public void HondaStart(){

CarEngine Honda_Engine = nou CarEngine(); //compoziţie

Honda_Engine.startEngine();

}

}

clasă publică principal {

public static void main(String[] args) {

Honda HondaJazz = Honda noua();

HondaJazz.setColour(„Negru”);

HondaJazz.setMaxSpeed(160);

HondaJazz.carDetails();

HondaJazz.HondaStart();

}

}

Ieșire:

Culoare mașină = Negru; Viteza maxima = 160

Motorul mașinii a pornit.

Ieșirea este derivată folosind compoziția și arată detaliile mașinii Honda Jazz.

Denotații UML de asociere

Relațiile de asociere, agregare și compoziție în Java între clasele A și B sunt reprezentate după cum urmează în diagramele UML:

Asociație: A—->B

Compoziție: A—–<umplut>B

Agregare: A—–<>B

Obțineți diplome online de Inginerie software de la cele mai bune universități din lume. Câștigă programe Executive PG, programe avansate de certificat sau programe de master pentru a-ți accelera cariera.

Beneficiile compoziției în Java

Utilizarea tehnicii de proiectare a compoziției în Java oferă următoarele beneficii:

  1. Este întotdeauna fezabil să „preferăm compoziția obiectului decât moștenirea clasei”. Clasele realizează polimorfism și reutilizarea codului prin compoziție.
  2. Compoziția este flexibilă, în care puteți modifica implementarea clasei în timpul execuției, schimbând obiectul inclus și modificați comportamentul acestuia.
  3. Un design bazat pe compoziție are un număr mai mic de clase.
  4. Relația „HAS-A” dintre clase este corectă din punct de vedere semantic decât relația „IS-A”.
  5. Compoziția în Java oferă o testabilitate mai bună a clasei, care este utilă în special în dezvoltarea bazată pe teste.
  6. Este posibil să se obțină „moșteniri multiple” în limbi prin compunerea mai multor obiecte într-unul singur.
  7. În compunere, nu există niciun conflict între metode sau nume de proprietate.

Concluzie

Compoziția în Java oferă multe avantaje în timpul programării și este una dintre metodele de proiectare preferate. În acest articol, am încercat să vă facem să înțelegeți acest concept important cu exemple din viața reală și cod practic. Compoziția oferă flexibilitate și cod robust. Caracteristica sa de reutilizare a codului ajută la evitarea dublării codului și la obținerea eficienței costurilor. Acest lucru îl face una dintre metodele utilizate pe scară largă în diferite programe.

Învață compoziția în Java cu masteratul upGrad într-un curs de informatică, care are scopul de a te face să înveți și să-ți perfecționezi abilitățile în dezvoltarea de software.

Eligibilitate

AB diplomă de licență cu 50% sau note echivalente. Nu este nevoie de experiență inițială de codare.

Prețuri

Taxa de program începe de la Rs.13, 095/lună pentru rezidenții indieni și 5999 USD pentru rezidenții internaționali.

Aterizează la locul de muncă visat

Aplicați pentru Master of Science în Machine Learning și AI