Cos'è il sovraccarico del costruttore in Java

Pubblicato: 2022-11-16

La domanda di applicazioni web è in aumento a livello globale. Java è emerso come una scelta preferita per gli sviluppatori con la necessità di una programmazione su larga scala. La popolarità di Java si basa sulle sue caratteristiche dinamiche, sull'interfaccia intuitiva e sull'elevata compatibilità con i principali sistemi operativi. Il linguaggio ha una ricca API. Un altro vantaggio di Java è che offre un solido supporto comunitario ed eccellenti servizi di documentazione. Non dimenticare la suite di strumenti di sviluppo offerti da Java.

Sommario

Cosa intendi per costruttori in Java?

I costruttori in Java sono usati principalmente per inizializzare lo stato dell'oggetto. Analogamente ai metodi, i costruttori consistono in un gruppo di istruzioni o istruzioni che devono essere eseguite quando viene creato un oggetto.

Qual è la necessità di un costruttore in Java?

Per spiegare la necessità di un constrictor in Java, prendiamo un esempio di box. Considera la scatola come una classe. La scatola avrà diverse variabili come lunghezza, larghezza e altezza. Quando è il momento di creare un oggetto, la classe box non avrà valori definiti per le sue dimensioni. Quando vengono creati nuovi oggetti, i costruttori assegnano valori alle variabili di classe in due modi: tramite vari parametri passati dal programmatore o utilizzando i costruttori Java predefiniti.

Cosa intendi per sovraccarico del costruttore in Java?

Nell'overload del costruttore vengono definiti più costruttori della stessa classe. Tuttavia, ogni costruttore dovrebbe avere una firma univoca o parametri di input specifici. Il programma di sovraccarico del costruttore in Java consente a una singola classe di avere più di un costruttore, che differisce per l'elenco di argomenti passati. Ogni costruttore sovraccaricato viene utilizzato per eseguire varie attività di classe.

Il compilatore Java identifica i costruttori sovraccaricati in base ai tipi di parametro, agli elenchi di parametri e alla quantità di parametri di input. È abbastanza ovvio che i costruttori sovraccaricati hanno firme diverse. La firma del costruttore conterrà i suoi tipi di parametro e il suo nome. A volte sorgono problemi di ambiguità quando due costruttori di classi hanno una firma identica. In una situazione del genere, il compilatore non può distinguere tra i due. Pertanto visualizza una notifica di errore. A volte, ci sono costruttori sovraccarichi con firme diverse. In questo caso, il compilatore verifica che il conduttore sia invocato in base al numero di parametri di input dei diversi oggetti.

Esempio di sovraccarico del costruttore

In questo esempio, stiamo cercando di creare due oggetti della classe StudentData . Un oggetto usa un costruttore predefinito, mentre l'altro usa un costruttore parametrizzato. Entrambi i costruttori hanno codici di inizializzazione separati. È possibile creare costruttori di qualsiasi numero con codici di inizializzazione differenti-2 per scopi differenti-2.

StudentData.java

classe StudentData

{

private int stuID;

private String stuName;

privato int stuAge;

StudentDati ()

{

// Costruttore predefinito

stuID = 100 ;

stuName = “Nuovo Studente” ;

stuAge = 18 ;

}

StudentData ( int num1, String str, int num2)

{

//Costruttore parametrizzato

stuID = num1;

stuName = str;

stuAge = num2;

}

//Metodi getter e setter

public int getStuID() {

return stuID;

}

public void setStuID( int stuID) {

questo .stuID = stuID;

}

public String getStuName() {

return stuName;

}

public void setStuName( String stuName) {

questo .stuName = stuName;

}

public int getStuAge() {

ritorno stuAge;

}

public void setStuAge( int stuAge) {

this .stuAge = stuAge;

}

public static void main( String args[])

{

//La creazione di questo oggetto chiamerebbe il costruttore predefinito

StudentData myobj = nuovo StudentData ();

Sistema . out .println( “Il nome dello studente è: “ +myobj.getStuName());

Sistema . out .println( “L'età dello studente è: “ +myobj.getStuAge());

Sistema . out .println( “L'ID studente è: “ +myobj.getStuID());

/*La creazione di questo oggetto chiamerebbe il file con parametri

* costruttore StudentData(int, String, int)*/

StudentData myobj2 = nuovo StudentData ( 555 , “Chaitanya” , 25 );

Sistema . out .println( “Il nome dello studente è: “ +myobj2.getStuName());

Sistema . out .println( “L'età dello studente è: “ +myobj2.getStuAge());

Sistema . out .println( “L'ID studente è: “ +myobj2.getStuID());

}

}

Produzione:

Il nome dello studente è : Nuovo studente

L' età dello studente è : 18 anni

ID studente è : 100

Il nome dello studente è : Chaitanya

L' età dello studente è : 25 anni

ID studente è : 555

Riferimento: https://beginnersbook.com/2013/05/constructor-overloading/

Impara i corsi di sviluppo software online dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzata o programmi di master per accelerare la tua carriera.

Comprensione della funzione di this () nell'overload del costruttore

public class OverloadingEsempio2

{

private int rollNum;

SovraccaricoEsempio2 ()

{

rollNumero = 100 ;

}

Esempio di sovraccarico2 ( int rnum)

{

questo ();

/*this() è usato per chiamare il default

* costruttore dal costruttore parametrizzato.

* Dovrebbe essere sempre la prima affermazione

* all'interno del corpo costruttore.

*/

rollNum = rollNum+ rnum;

}

public int getRollNum() {

ritorno rollNum;

}

public void setRollNum( int rollNum) {

questo .rollNum = rollNum;

}

public static void main( String args[])

{

OverloadingExample2 obj = new OverloadingExample2 ( 12 );

Sistema . out .println(obj.getRollNum());

}

}

Produzione

112

Riferimento: https://beginnersbook.com/2013/05/constructor-overloading/
Webinar esclusivo sullo sviluppo software di upGrad per te -
Webinar esclusivo sullo sviluppo software di upGrad per te -

SAAS Business: cosa c'è di così diverso?

Nel programma sopra menzionato, il costruttore parametrizzato viene chiamato durante la creazione dell'oggetto. Il costruttore predefinito viene richiamato quando this () viene inserito nel costruttore parametrizzato. La variabile rollNum viene inizializzata.

Un altro esempio:

Quando non si implementa alcun costruttore, il compilatore java inserirà un costruttore predefinito nel codice durante la compilazione. Tuttavia, il compilatore non esegue questa operazione quando si implementa un costruttore. Guarda l'esempio qui per capire meglio questo punto:

Demo di classe pubblica

{

private int rollNum;

//Qui non stiamo definendo un costruttore no-arg

Demo ( int rnum)

{

rollNum = rollNum+ rnum;

}

// Metodi Getter e Setter

public static void main( String args[])

{

//Questa istruzione invocherebbe il costruttore no-arg

Demo obj = nuovo Demo ();

}

}

Produzione:

Eccezione nel thread "main" java.lang. Errore : Compilazione irrisolta

Problema: il costruttore Demo () non è definito

Corsi e articoli popolari sull'ingegneria del software

Programmi popolari
Programma PG esecutivo in sviluppo software - IIIT B Programma di certificazione Blockchain - PURDUE Programma di certificazione della sicurezza informatica - PURDUE Laurea Magistrale in Informatica - IIIT B
Altri articoli popolari
Stipendio per Cloud Engineer negli Stati Uniti 2021-22 Stipendio di AWS Solution Architect negli Stati Uniti Stipendio per sviluppatori di backend negli Stati Uniti Stipendio per sviluppatore front-end negli Stati Uniti
Salario per sviluppatore web negli Stati Uniti Domande dell'intervista allo Scrum Master nel 2022 Come iniziare una carriera nella sicurezza informatica nel 2022? Opzioni di carriera negli Stati Uniti per studenti di ingegneria

Spiegazione dell'uso dell'overload del costruttore

Con l' overloading della costruzione , diventa possibile abilitare la creazione di un oggetto di una classe specifica in diversi modi. Pertanto questo concetto viene utilizzato in vari programmi Java a seconda delle esigenze del programmatore. Quando si utilizza l' overload del costruttore in Java , è possibile inizializzare gli oggetti con diversi tipi di dati.

Ad esempio, considera che esiste un oggetto con tre variabili di istanza di classe. È necessario assegnare un valore particolare alla seconda variabile di istanza e valori predefiniti alle altre variabili. Realizzare ciò dichiarando più costruttori secondo diverse firme nella classe costituente.

Vantaggi dell'overload del costruttore in Java

Di seguito sono indicati i principali vantaggi dell'utilizzo dell'overload del costruttore durante la scrittura di programmi Java:

  • È possibile inizializzare le istanze della classe in vari modi utilizzando l'overload del costruttore.
  • Con l'overload del costruttore, puoi realizzare il polimorfismo statico.
  • Ogni costruttore di overload esegue attività diverse per scopi specifici.
  • L'overload del costruttore in Java semplifica il processo di definizione di più costruttori in una singola classe con firme univocamente specifiche.

Conclusione

Questo articolo discute il programma di sovraccarico del costruttore in Java e i suoi vantaggi. Esiste più di un costruttore di una classe con firme diverse quando sono presenti costruttori sovraccaricati. Per la compilazione, ogni costruttore deve avere elenchi di parametri diversi. Un elenco di parametri comprenderà i tipi e gli ordini degli argomenti. È impossibile avere due costruttori con gli stessi elenchi di parametri in una classe.

Programma di certificazione di sviluppo full stack di upGrad per sviluppatori di software e professionisti della tecnologia

Che tu sia nuovo nel settore dello sviluppo software o che cerchi di migliorare le tue competenze, devi apprendere nuove competenze e tecnologie attraverso corsi pertinenti. Lo sviluppo full-stack è uno di questi corsi.

upGrad offre un programma esecutivo in sviluppo software a candidati interessati, progettato esclusivamente per professionisti IT, sviluppatori di software, professionisti del supporto tecnico, analisti e neolaureati che desiderano avventurarsi nell'arena dello sviluppo software.

Sarai altamente qualificato in JavaScript e imparerai i microservizi e lo stack MERN con questo corso. Oltre ad apprendere quasi 10+ linguaggi e strumenti di programmazione, imparerai anche i vari strumenti ampiamente utilizzati su Facebook, Walmart, Netflix e LinkedIn. Il programma offre un'esperienza di apprendimento coinvolgente su Cloud Labs.

Gli studenti che intraprendono questo programma di certificazione avranno l'opportunità di progettare, sviluppare, testare e distribuire applicazioni Web nel progetto Capstone. Gli studenti ricevono sessioni di tutoraggio professionale one-to-one con mentori leader del settore con questi vantaggi. Al termine del corso, puoi lavorare come sviluppatore full-stack, sviluppatore dell'interfaccia utente, sviluppatore front-end e back-end.

Candidati ora per iscriverti al corso!

Qual è l'uso di un costruttore in Java?

Un costruttore in Java viene utilizzato per inizializzare oggetti e creare un oggetto di una classe. È inoltre possibile impostare i valori iniziali per le caratteristiche e gli attributi dell'oggetto. Un costruttore è come un blocco di codici, simile a un metodo oa un processo.

Il sovraccarico del costruttore avviene per la classe statica?

È interessante notare che i conduttori statici non possono essere sovraccaricati o ereditati. Un conduttore statico viene richiamato automaticamente. L'utente non ha alcun controllo quando il costruttore statico viene eseguito nel programma.

C'è una differenza tra il sovraccarico del costruttore e il sovraccarico del metodo?

Un metodo viene utilizzato per eseguire determinate funzioni di classe, mentre un costruttore inizializza un oggetto. Quando crei un oggetto, i costruttori vengono richiamati implicitamente. Tuttavia, i metodi devono essere chiamati esplicitamente dall'utente.