Ce este supraîncărcarea constructorului în Java
Publicat: 2022-11-16Cererea de aplicații web este în creștere la nivel global. Java a apărut ca o alegere preferată pentru dezvoltatorii care au nevoie de programare la scară largă. Popularitatea Java se bazează pe caracteristicile sale dinamice, pe interfața ușor de utilizat și pe compatibilitatea ridicată cu sistemele de operare de top. Limbajul are un API bogat. Un alt avantaj al Java este că oferă suport solid pentru comunitate și servicii excelente de documentare. Nu uita de suita de instrumente de dezvoltare oferite de Java.
Ce vrei să spui prin constructori în Java?
Constructorii din Java sunt utilizați în principal pentru inițializarea stării obiectului. Similar cu metodele, constructorii constau dintr-un grup de instrucțiuni sau instrucțiuni care trebuie executate atunci când un obiect este creat.
Care este nevoie de un Constructor în Java?
Pentru a explica necesitatea unui constrictor în Java, să luăm un exemplu de cutie. Consideră cutia ca fiind o clasă. Caseta va avea diferite variabile, cum ar fi lungimea, lățimea și înălțimea. Când este timpul să creați un obiect, clasa caseta nu va avea nicio valoare definită pentru dimensiunile sale. Când sunt create obiecte noi, constructorii atribuie valori variabilelor de clasă în două moduri – prin diverși parametri trecuți de programator sau folosind constructori Java impliciti.
Ce vrei să spui prin supraîncărcarea constructorului în Java?
În supraîncărcarea constructorului , sunt definiți mai mulți constructori din aceeași clasă. Cu toate acestea, fiecare constructor ar trebui să aibă o semnătură unică sau parametri de intrare specifici. Programul de supraîncărcare a constructorului în Java permite unei singure clase să aibă mai mult de un constructor, care diferă prin lista de argumente transmise. Fiecare constructor supraîncărcat este folosit pentru a efectua diverse sarcini de clasă.
Compilatorul Java identifică constructorii supraîncărcați pe baza tipurilor de parametri, a listelor de parametri și a cantității de parametri de intrare. Este destul de evident că constructorii supraîncărcați au semnături diferite. Semnătura constructorului va conține tipurile de parametri și numele acestuia. Uneori apar probleme de ambiguitate atunci când doi constructori de clasă au o semnătură identică. Într-o astfel de situație, compilatorul nu poate face diferența între cele două. Prin urmare, afișează o notificare de eroare. Uneori, există constructori supraîncărcați cu semnături diferite. În acest caz, compilatorul constată că conductorul este invocat în funcție de numărul de parametri de intrare ai diferitelor obiecte.
Exemplu de supraîncărcare a constructorului
În acest exemplu, căutăm să creăm două obiecte din clasa StudentData . Un obiect folosește un constructor implicit, în timp ce celălalt folosește un constructor parametrizat. Ambii constructori au coduri de inițializare separate. Este posibil să se creeze constructori ai oricăror numere cu coduri de inițializare diferite-2 pentru scopuri diferite-2.
StudentData.java
clasa StudentData
{
private int stuID;
private String stuName;
private int stuAge;
StudentData ()
{
//Constructor implicit
stuID = 100 ;
stuName = „Student nou” ;
stuAge = 18 ;
}
StudentData ( int num1, String str, int num2)
{
//Constructor parametrizat
stuID = num1;
stuName = str;
stuAge = num2;
}
//Metode getter și setter
public int getStuID() {
return stuID;
}
public void setStuID( int stuID) {
acest .studid = stuID;
}
public String getStuName() {
return stuName;
}
public void setStuName( String stuName) {
acest .stuName = stuName;
}
public int getStuAge() {
retur stuAge;
}
public void setStuAge( int stuAge) {
this .stuAge = stuAge;
}
public static void main( String args[])
{
//Crearea acestui obiect ar apela constructorul implicit
StudentData myobj = new StudentData ();
Sistem . out .println( „Numele elevului este: „ +myobj.getStuName());
Sistem . out .println( „Vârsta studentului este: „ +myobj.getStuAge());
Sistem . out .println( „ID-ul studentului este: „ +myobj.getStuID());
/*Crearea acestui obiect va apela parametrizat
* constructor StudentData(int, String, int)*/
StudentData myobj2 = new StudentData ( 555 , „Chaitanya” , 25 );
Sistem . out .println( „Numele elevului este: „ +myobj2.getStuName());
Sistem . out .println( „Vârsta studentului este: „ +myobj2.getStuAge());
Sistem . out .println( „ID-ul studentului este: „ +myobj2.getStuID());
}
}
Ieșire:
Numele studentului este : Student nou
Vârsta studentului este : 18 ani
ID student este : 100
Numele studentului este : Chaitanya
Vârsta studentului este : 25 de ani
ID student este : 555
Referință: https://beginnersbook.com/2013/05/constructor-overloading/
Î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.
Înțelegerea funcției acestui () în supraîncărcarea constructorului
clasă publică SupraîncărcareExemplu2
{
private int rollNum;
SupraîncărcareExemplu2 ()
{
rollNum = 100 ;
}
SupraîncărcareExample2 ( int rnum)
{
aceasta ();
/*this() este folosit pentru apelarea implicită
* constructor din constructorul parametrizat.
* Ar trebui să fie întotdeauna prima afirmație
* în interiorul corpului constructorului.
*/
rollNum = rollNum+ rnum;
}
public int getRollNum() {
returnează rollNum;
}
public void setRollNum( int rollNum) {
acest .rollNum = rollNum;
}
public static void main( String args[])
{
OverloadingExample2 obj = new OverloadingExample2 ( 12 );
Sistem . out .println(obj.getRollNum());
}
}
Ieșire
112
Referință: https://beginnersbook.com/2013/05/constructor-overloading/
Webinarul exclusiv pentru dezvoltare software upGrad pentru tine –
Webinarul exclusiv pentru dezvoltare software upGrad pentru tine –
SAAS Business – Ce este atât de diferit?
În programul menționat mai sus, constructorul parametrizat este apelat în timpul creării obiectului. Constructorul implicit este invocat deoarece acest () este plasat în constructorul parametrizat. Variabila rollNum este inițializată.
Alt exemplu:
Când nu implementați niciun constructor, compilatorul java va insera un constructor implicit în cod în timpul compilării. Cu toate acestea, compilatorul nu face acest lucru atunci când implementați orice constructor. Vezi exemplul de aici pentru a înțelege mai bine acest punct:
Demo de clasă publică
{
private int rollNum;
//Nu definim aici un constructor no-arg
Demo ( int rnum)
{
rollNum = rollNum+ rnum;
}
//Metode Getter și Setter
public static void main( String args[])
{
//Această instrucțiune ar invoca constructorul no-arg
Demo obj = nou Demo ();
}
}
Ieșire:
Excepție în firul „principal” java.lang. Eroare : compilare nerezolvată
Problemă: Constructorul Demo ( ) este nedefinit
Cursuri populare și articole despre inginerie software
Programe populare | |||
Program Executive PG în Dezvoltare Software - IIIT B | Programul de Certificat Blockchain - PURDUE | Programul de certificate de securitate cibernetică - PURDUE | MSC în Informatică - IIIT B |
Alte articole populare | |||
Salariu inginer cloud în SUA 2021-22 | Salariu AWS Solution Architect în SUA | Salariu pentru dezvoltatori backend în SUA | Salariu pentru Dezvoltator Front End în SUA |
Salariu web developer in SUA | Întrebări de interviu Scrum Master în 2022 | Cum să începi o carieră în securitatea cibernetică în 2022? | Opțiuni de carieră în SUA pentru studenții la inginerie |
Explicarea utilizării supraîncărcării constructorului
Odată cu supraîncărcarea construcției , devine posibil să se permită crearea unui obiect a unei clase specifice în moduri diferite. Prin urmare, acest concept este utilizat în diferite programe Java în funcție de cerințele programatorului. Când utilizați supraîncărcarea constructorului în Java , este posibil să inițializați obiectele cu diferite tipuri de date.
De exemplu, să considerăm că există un obiect cu trei variabile de instanță de clasă. Trebuie să atribuiți o anumită valoare variabilei de a doua instanță și valori implicite celorlalte variabile. Realizați acest lucru declarând mai mulți constructori conform diferitelor semnături din clasa constituentă.
Avantajele supraîncărcării constructorului în Java
Mai jos sunt menționate avantajele cheie ale utilizării supraîncărcării constructorului în timp ce scrieți programe Java:
- Puteți inițializa instanțele de clasă în diferite moduri folosind supraîncărcarea constructorului.
- Cu supraîncărcarea constructorului, puteți realiza polimorfismul static.
- Fiecare constructor supraîncărcat îndeplinește sarcini diferite pentru scopuri specificate.
- Supraîncărcarea constructorului în Java ușurează procesul de definire a mai multor constructori într-o singură clasă cu semnături specifice unic.
Concluzie
Acest articol discută despre programul de supraîncărcare a constructorului în Java și beneficiile acestuia. Există mai mult de un constructor al unei clase cu semnături diferite când există constructori supraîncărcați. Pentru compilare, fiecare constructor trebuie să aibă liste de parametri diferite. O listă de parametri va cuprinde tipurile și ordinele argumentelor. Este imposibil să existe doi constructori cu aceleași liste de parametri într-o clasă.
Programul de certificat de dezvoltare completă de la upGrad pentru dezvoltatorii de software și profesioniștii din tehnologie
Indiferent dacă sunteți nou în industria dezvoltării de software sau doriți să vă îmbunătățiți abilitățile, trebuie să învățați noi abilități și tehnologii prin cursuri relevante. Dezvoltarea full-stack este un astfel de curs.
upGrad oferă candidaților interesați Programul Executive în Dezvoltare de Software, conceput exclusiv pentru profesioniștii IT, dezvoltatorii de software, profesioniștii de asistență tehnologică, analiștii și proaspeții absolvenți care doresc să se aventureze în arena dezvoltării software.
Veți fi foarte calificat în JavaScript și veți învăța Microservicii și MERN Stack cu acest curs. Pe lângă învățarea a peste 10 limbaje și instrumente de programare, veți învăța și diversele instrumente utilizate pe scară largă pe Facebook, Walmart, Netflix și LinkedIn. Programul oferă o experiență de învățare captivantă în Cloud Labs.
Studenții care urmează acest program de certificat vor avea ocazia să proiecteze, să dezvolte, să testeze și să implementeze aplicații web în proiectul Capstone. Cursanții beneficiază de sesiuni individuale de mentorat în carieră cu mentori de top din industrie cu aceste beneficii. După finalizarea cursului, puteți lucra ca dezvoltator full-stack, dezvoltator UI, dezvoltator front-end și back-end.
Aplica acum pentru a te inscrie la curs!
La ce folosește un constructor în Java?
Un constructor în Java este folosit pentru a inițializa obiecte și pentru a crea un obiect al unei clase. De asemenea, puteți seta valori inițiale pentru caracteristicile și atributele obiectului. Un constructor este ca un bloc de coduri, similar unei metode sau unui proces.
Are loc supraîncărcarea constructorului pentru clasa statică?
Interesant este că conductoarele statice nu pot fi supraîncărcate sau moștenite. Un conductor static este invocat automat. Utilizatorul nu are control când constructorul static este executat în program.
Există o diferență între supraîncărcarea constructorului și supraîncărcarea metodei?
O metodă este folosită pentru a efectua anumite funcții de clasă, în timp ce un constructor inițializează un obiect. Când creați un obiect, constructorii sunt invocați implicit. Cu toate acestea, metodele trebuie apelate de utilizator în mod explicit.