Ce este compoziția în Java? Cu Exemple

Publicat: 2023-01-27

Cuprins

Bazele asocierii în Java:

Asocierea poate fi definită în Java ca o interconexiune între două clase individuale folosind obiectele lor distincte. Tipurile de relații gestionate de asociere Java sunt:

  • Unu-la-unu: există doar o singură clasă derivată pentru fiecare clasă părinte.
  • Unu-la-mulți: o clasă cu un singur părinte poate avea mai multe clase de copii.
  • Multi-la-unu: o singură clasă copil poate fi asociată cu mai multe superclase.
  • Multi-la-mai multe: un număr de clase părinte pot fi asociate cu o singură clasă copil și mai multe clase de copii pot fi asociate cu o clasă părinte unică.

Odată stabilită relația, clasele derivate comunică cu clasele de bază respective pentru a le refolosi caracteristicile și proprietățile. Există două tipuri de asociere în Java. Ele sunt agregarea și compoziția.

Agregarea în Java este un proces mai generalizat în comparație cu compoziția. Aceste forme se bazează pe tipul de relație susținută între clase.

Introducere în compoziție în Java:

O tehnică de proiectare în Java care implementează o relație Has-A se numește compoziție. Procesul de moștenire este folosit pentru a reutiliza codul. Compoziția în Java poate fi realizată folosind o variabilă de instanță care se referă la alte obiecte. Dacă un obiect constituie un alt obiect în așa fel încât obiectul constitutiv nu poate exista fără supraviețuirea obiectului principal, tipul de relație este denumit compoziție. Pentru a fi mai specific, compoziția este un aspect care descrie referința între două sau mai multe clase cu ajutorul variabilelor de instanță. Aici, instanța ar trebui creată înainte de a utiliza variabilele instant. Să luăm un exemplu de bibliotecă pentru o înțelegere clară a conceptului „compoziție”.

Există numeroase cărți într-o bibliotecă. Fiecare carte are autori și titluri separati. Biblioteca ar trebui să aibă, de asemenea, o listă de referințe cu cărți în ea. Biblioteca are, de asemenea, mai multe cărți legate de aceeași temă sau subiecte diverse. Aici, biblioteca corespunde clasei principale, iar cărțile pot fi legate de clasa derivată. Asocierea sau relația dintre cărți și bibliotecă poate fi privită ca compoziție. Acest lucru se datorează faptului că clasa „Cărți” este complet dependentă de biblioteca de clasă. De exemplu, dacă biblioteca este distrusă, atunci toate cărțile din ea sunt și ele distruse.

Consultați cursurile noastre gratuite de tehnologie pentru a obține un avantaj față de concurență.

Explorați cursurile noastre populare de inginerie software

Master în Informatică de la LJMU și IIITB Programul de certificat de securitate cibernetică Caltech CTME
Bootcamp pentru dezvoltare completă Programul PG în Blockchain
Program Executive PG în Full Stack Development
Vezi mai jos toate cursurile noastre
Cursuri de Inginerie Software

O descriere detaliată a Compoziției în Java:

Compoziția este o formă de asociere Java. Cele două clase care comunică sunt strâns legate între ele, unde clasa derivată este complet dependentă de clasa părinte. Existența independentă a clasei derivate nu este posibilă în acest caz. De exemplu, un motor fără mașină nu poate exista independent. Acest tip de asociere este foarte restrâns în comparație cu agregarea. Compoziția este o tehnică de proiectare și nu trebuie confundată cu o caracteristică Java.

Compoziția poate fi folosită pentru a modela obiecte care au alte obiecte ca membri constitutivi. Există relația are-o între aceste obiecte. În acest tip de asociere, un obiect conține celălalt obiect. Prin urmare, obiectul constitutiv este complet dependent de obiectul principal pentru supraviețuirea lui. Deci, dacă obiectul care îl conține, este afectat și obiectul constitutiv. Prin urmare, relația de compoziție poate fi privită ca o parte a întregii relații în care existența părții fără întreg nu este posibilă. Cu alte cuvinte, partea este ștearsă automat la ștergerea întregului. Aceasta înseamnă că întregul are o relație fermă cu partea.

Învață cursuri de dezvoltare software online de la cele mai bune universități din lume. Câștigați programe Executive PG, programe avansate de certificat sau programe de master pentru a vă accelera cariera.

Abilități de dezvoltare software la cerere

Cursuri JavaScript Cursuri de bază Java Cursuri de Structuri de Date
Cursuri Node.js Cursuri SQL Cursuri de dezvoltare full stack
Cursuri NFT Cursuri DevOps Cursuri de Big Data
Cursuri React.js Cursuri de securitate cibernetică Cursuri de cloud computing
Cursuri de proiectare baze de date Cursuri Python Cursuri de criptomonede

Cum este moștenirea diferită de compoziția în Java?

Este important de reținut că funcționalitatea moștenirii poate fi realizată folosind compoziția și în Java. Deși atât moștenirea, cât și compoziția sunt folosite pentru a oferi reutilizarea codului de către clasa aferentă, există diferențe subtile între acestea două. Principala diferență dintre cele două procese este că compoziția este o tehnică de proiectare, spre deosebire de moștenirea, care este o caracteristică Java. Alte diferențe majore între cele două sunt enumerate în tabelul de mai jos.

Parametru

Compoziţie

Moştenire

De bază Încorporează o relație HAS-A. Încorporează o relație IS-A.
Reutilizarea codului Codul poate fi reutilizat în mai multe clase. Reutilizarea codului este posibilă doar într-o clasă, deoarece o singură interfață poate fi extinsă de o clasă.
Domeniul de aplicare Poate fi realizat cu ușurință în timpul execuției. Caracteristicile sunt mai bine realizate în timpul compilării.
Final Facilitează reutilizarea codului chiar și din clasele finale. Codul din clasele finale nu poate fi reutilizat în cazul moștenirii.
Metode Metodele nu sunt expuse. Interfețele publice sunt folosite pentru interacțiunea lor. Moștenirea expune atât metodele protejate, cât și cele publice ale clasei de bază.

Diferențele dintre agregare și compoziție:

Agregare

Compoziţie

Este un tip de asociere Java slabă. Este un tip de asociere mai puternic în comparație cu agregarea.
Clasa derivată este independentă de clasa de bază. Prin urmare, clasa derivată poate continua să existe chiar dacă clasa de bază este distrusă. Clasa derivată este complet dependentă de clasa de bază. Prin urmare, subclasa nu poate exista dacă superclasa este distrusă.
Clasa de copii are propria sa viață. Durata de viață a clasei copil depinde de clasa părinte.
Clasa părinte folosește clasa copil în acest tip de asociere. Prin urmare, clasa derivată nu este deținută de clasa de bază. În acest tip de asociere, clasa părinte deține clasa copil. Prin urmare, clasa părinte este proprietara clasei copil.
Constituie o relație HAS-A. Clasa derivată are o clasă de bază. Ea constituie o parte a relației. Clasa derivată este o parte a clasei de bază.
Cuvântul cheie final nu este folosit pentru a indica agregarea. Cuvântul cheie final poate fi folosit pentru a desemna compoziția.
Exemplu: mașina are șofer. Exemplu: Motorul este o parte a mașinii.

Citiți articolele noastre populare legate de dezvoltarea software

Cum se implementează abstracția datelor în Java? Ce este Inner Class în Java? Identificatori Java: definiție, sintaxă și exemple
Înțelegerea încapsulării în OOPS cu exemple Argumentele liniei de comandă în C explicate Top 10 caracteristici și caracteristici ale cloud computing-ului în 2022
Polimorfismul în Java: concepte, tipuri, caracteristici și exemple Pachete în Java și cum să le folosiți? Tutorial Git pentru începători: Învață Git de la zero

Avantajele utilizării Compoziției în Java:

  • Compoziția facilitează reutilizarea codului Java.
  • Deși moștenirile multiple nu sunt acceptate de Java, golul poate fi completat prin această tehnică de proiectare.
  • Cu utilizarea compoziției, o clasă poate fi testată pentru abilități într-un mod mai bun.
  • Codul este flexibilizat prin utilizarea compoziției. Implementarea clasei compuse poate fi înlocuită cu o versiune îmbunătățită.
  • Membrii obiectului pot fi modificați în timpul execuției pentru modificarea dinamică a comportamentului programului prin utilizarea unei relații de compoziție.

Limitări ale compoziției în Java:

Există câteva dezavantaje ale utilizării compoziției în Java. Principalul dezavantaj al compoziției obiectului este că este mai greu pentru utilizator să înțeleagă comportamentul sistemului implementat doar gândindu-se la codul sursă. Un sistem care utilizează compoziția obiectelor este de natură foarte dinamică. Deci, înțelegerea funcționării sistemelor care utilizează compoziția obiectelor necesită o analiză mai profundă a codului sursă și rularea codului pentru a asista la funcționarea și cooperarea dintre obiectele individuale din codul sursă.

Dacă sunteți interesat să aflați mai multe despre Java, dezvoltarea de software full-stack, consultați programul Executive PG în dezvoltare software de la upGrad și IIIT-B – Specializare în dezvoltare full-stack, care este conceput pentru profesioniști care lucrează și oferă peste 500 de ore de formare riguroasă. , peste 9 proiecte și sarcini, statutul de absolvenți IIIT-B, proiecte practice practice și asistență pentru locuri de muncă cu firme de top.

Vrei să distribui acest articol?

Pregătiți-vă pentru o carieră a viitorului

Aplicați acum pentru masterat în inginerie software