Supraîncărcarea constructorului în Java: explicații, beneficii și exemple

Publicat: 2021-07-22

Cuprins

Bazele Java

Java, cu caracteristicile sale remarcabile și dinamice, a apărut ca una dintre cele mai căutate opțiuni de dezvoltatori pentru programarea la scară largă a aplicațiilor web. Este un limbaj ușor de utilizat, cu o gamă largă de caracteristici extraordinare. Compatibilitatea sa cu toate sistemele de operare este că API-ul bogat l-a făcut popular în întreaga lume. Limba oferă suport solid pentru comunitate și servicii excelente de documentare. Java are o suită de instrumente solide de dezvoltare.

Constructori în Java

Constructorii din Java sunt folosiți pentru a inițializa starea obiectului. La fel ca și metodele, constructorii conțin și un grup de instrucțiuni sau instrucțiuni care urmează să fie executate în timp ce un obiect este creat.

De ce avem nevoie de un constructor în Java?

Să luăm în considerare o cutie. Dacă se presupune că caseta este o clasă, aceasta poate avea mai multe variabile, cum ar fi lățimea, lungimea și înălțimea. Când un obiect urmează să fie creat, clasa casetei nu va avea valori definite pentru dimensiunile sale. În momentul creării de noi obiecte, constructorii atribuie valori variabilelor clasei. Atribuirea valorilor se poate face fie folosind constructori Java impliciti, fie explicit prin parametrii transmisi de programator.

Când este invocat un constructor?

Cel puțin un constructor este invocat de fiecare dată când un obiect este creat folosind cuvântul cheie new(). Acest constructor oferă valori inițiale membrilor de date ai clasei. În general, un constructor este apelat atunci când este creat un nou obiect sau instanță.

Supraîncărcarea constructorului în Java

Procesul de definire a mai multor constructori ai aceleiași clase este denumit supraîncărcare constructor. Cu toate acestea, fiecare constructor ar trebui să aibă o semnătură diferită sau parametri de intrare. Cu alte cuvinte, supraîncărcarea constructorului în Java este o tehnică care permite unei singure clase să aibă mai mult de un constructor care variază în funcție de lista de argumente transmisă. Fiecare constructor supraîncărcat este folosit pentru a efectua sarcini diferite în clasă.

Compilatorul Java identifică constructorii supraîncărcați pe baza listelor lor de parametri, a tipurilor de parametri și a numărului de parametri de intrare. Prin urmare, constructorii care sunt supraîncărcați ar trebui să aibă semnături diferite. Semnătura unui constructor conține numele și tipurile de parametri. O problemă de ambiguitate apare atunci când doi dintre constructorii clasei au o semnătură identică.

Compilatorul nu reușește să facă diferența între cele două și, prin urmare, returnează o notificare de eroare. Când constructorii cu semnături diferite sunt supraîncărcați, compilatorul determină constructorul care urmează să fie invocat pe baza numărului de parametri de intrare ai obiectelor.

Utilizarea supraîncărcării constructorului

Deoarece supraîncărcarea construcției permite crearea obiectului unei clase specifice în mai multe moduri, este folosită cel mai frecvent în programele Java pe baza cerințelor programatorului. Cu utilizarea supraîncărcării constructorului, obiectele pot fi inițializate cu diferite tipuri de date.

Luați în considerare că un obiect cu trei variabile de instanță de clasă este luat ca exemplu în care o anumită valoare urmează să fie atribuită celei de-a doua variabile de instanță și celorlalte variabile li se atribuie valori implicite. Acest lucru poate fi realizat prin declararea mai multor constructori în funcție de diferitele semnături din clasa constituentă.

Citiți: Componentele și arhitectura carierei Java explicate

Exemplu de cod pentru implementarea supraîncărcării constructorului în Java

Să considerăm un program în care o clasă Employee are trei constructori. Pe baza valorilor transmise, fiecare dintre cele trei este invocat pentru a inițializa un obiect.

Utilizarea acestei Referințe în Java

Toate metodele de instanță și constructorii acceptă un parametru implicit numit „this”, care este folosit pentru a se referi la obiectul curent. Obiectul curent este acel obiect pe care este invocată metoda. Putem folosi referința „acest” pentru a ne referi la obiectul curent din orice constructor sau metodă. Referința „acest” poate fi folosită, ca orice referință la obiect, pentru a accesa metode de instanță, constructori și variabile, în cadrul metodei sau al corpului constructorului.

Câteva scenarii importante în care este folosită referința „acest” sunt:

  1. Când numele parametrilor sunt diferite de numele variabilelor de instanță
  2. Când o referință urmează să fie transmisă obiectului curent și un parametru unei alte metode
  3. Când un constructor urmează să fie invocat de la un alt constructor.

Argumentele de referință this() trebuie să se potrivească cu argumentele constructorului țintă în acest caz. Funcția this() trebuie să fie prima instrucțiune din constructor. În cazuri speciale, cum ar fi complexitatea rutinei de inițializare, această funcție poate fi utilizată în eliminarea codului duplicat în mai mulți constructori.

Î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.

Beneficiile supraîncărcării constructorului în Java

Avantajele cheie ale folosirii supraîncărcării constructorului în timpul scrierii programelor Java sunt:

  • Supraîncărcarea constructorului permite realizarea polimorfismului static.
  • Instanțele de clasă pot fi inițializate în mai multe moduri cu utilizarea supraîncărcării constructorului.
  • Facilitează procesul de definire a mai multor constructori într-o clasă cu semnături unice.
  • Fiecare constructor supraîncărcat îndeplinește diverse sarcini pentru scopuri specificate.

rezumat

  • Supraîncărcarea constructorului în Java se referă la utilizarea a mai mult de un constructor într-o clasă de instanță. Cu toate acestea, fiecare constructor supraîncărcat trebuie să aibă semnături diferite.
  • Pentru ca compilarea să aibă succes, fiecare constructor trebuie să conțină o listă diferită de argumente.
  • Lista de parametri include secvența și tipurile de argumente de intrare.
  • Doi constructori într-o clasă cu aceeași listă de parametri nu este fezabil în Java.

Dacă sunteți interesat să aflați mai multe despre 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ă, 9+ proiecte și sarcini, statutul de absolvenți IIIT-B, proiecte practice practice și asistență pentru locuri de muncă cu firme de top.

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

Aplicați pentru Programul Executive PG în Dezvoltare Software de către IIIT-B