Costruttore concatenamento in Java con esempi e implementazione

Pubblicato: 2023-06-05

In Java, i costruttori possono essere intesi come blocchi di codice utilizzati per inizializzare oggetti appena creati. Un costruttore è simile ai metodi di istanza in Java. Tuttavia, esiste una differenza cruciale tra costruttori e metodi in Java: mentre i metodi hanno un tipo restituito, i costruttori non hanno alcun tipo restituito specifico. I programmatori spesso si riferiscono ai costruttori come a un tipo speciale di metodo in Java.

I costruttori in Java hanno lo stesso nome della classe e hanno il seguente aspetto:

classe pubblica mioProgramma{

//Questo è il costruttore

mioProgramma(){

}

..

}

Quando un costruttore viene chiamato dall'interno di un altro costruttore, cioè quando si verifica Constructor Chaining in Java. Tuttavia, prima di approfondire il Constructor Chaining, diamo prima una rapida occhiata a come funzionano i Constructor in Java, insieme ad alcuni esempi per consolidare la tua comprensione.

Sommario

Come funzionano i costruttori in Java?

Per capire come funzionano i costruttori, diamo un'occhiata a un esempio. Supponiamo di avere una classe chiamata myProgram. Ora, quando creiamo l'oggetto di questa classe, dovremo scrivere la seguente istruzione:

mioProgramma obj = nuovo mioProgramma()

Come puoi vedere, la nuova parola chiave usata nell'esempio precedente crea l'oggetto di myProgram e invoca un costruttore per inizializzare questo oggetto appena creato.

Se questo ti sembra un po' confuso, non preoccuparti. Diamo un'occhiata a un semplice programma di costruzione in Java per comprendere meglio il funzionamento dei costruttori in Java.

Programma costruttore di base in Java

Guarda il seguente pezzo di codice Java che utilizza i costruttori:

prova di classe pubblica{

Libro di corde;

//Costruttore

Test(){

this.book = “A Catcher in the Rye”;

}

public static void main(String[] args) {

Test obj = new Test();

System.out.println(obj.book);

}

}

Produzione:

Un cacciatore nella segale

Nel programma sopra, abbiamo creato un oggetto chiamato 'obj' della nostra classe Program. Quindi, abbiamo stampato il nome della variabile di istanza di questo oggetto appena creato. Come puoi vedere dall'output, l'output è lo stesso del valore passato a 'book' durante l'inizializzazione del costruttore.

Ciò mostra che nel momento in cui l'oggetto obj è stato creato, il Constructor è stato richiamato automaticamente. Qui, abbiamo usato la parola chiave 'this' per fare riferimento all'oggetto corrente. Ci sono anche altri modi per farlo, di cui parleremo più avanti nell'articolo discutendo del Constructor Chaining.

Dopo aver sistemato le basi di Constructor in Java, passiamo a Constructor Chaining in Java e come funziona!

Concatenamento di costruttori all'interno di una singola classe

Macos'è il concatenamento del costruttore in Java che coinvolge una singola classe?Chiamare un costruttore da un altro nella stessa classe include il concatenamento del costruttore all'interno di quella classe. La parola chiave "this" viene utilizzata nella sintassi per il concatenamento del costruttore all'interno della stessa classe. L'istanza di classe corrente viene indicata quando viene utilizzato "this". È meglio comprendere l'uso delconcatenamento del costruttore in Java con example .

Costruttori concatenati da classi base/parent

Una classe in Java può derivare da un'altra classe; la classe derivata viene definita sottoclasse e la classe da cui deriva viene definita superclasse. Una sottoclasse può avere i propri costruttori e invocare quelli della sua superclasse.

Un costruttore di superclasse utilizza il termine super(), seguito dagli input richiesti. La parola chiave super() deve essere sempre presente nella prima riga del costruttore della sottoclasse.

Chiamata da un costruttore diverso, un costruttore

Usando la parola chiave this(), un costruttore in Java può chiamare un altro costruttore della stessa classe. La prima parola chiave nel costruttore deve essere sempre la parola chiave this(), che può essere utilizzata solo per chiamare un altro costruttore dello stesso tipo.

Costruttore di superclassi telefoniche

La parola chiave super() in Java consente ai costruttori di sottoclassi di chiamare il costruttore della superclasse. La parola chiave super(), che può essere utilizzata solo per chiamare il costruttore della superclasse della sottoclasse, deve essere sempre la prima riga del costruttore della sottoclasse.

I programmi Java possono comportarsi in modo diverso se i costruttori sono disposti in una sequenza diversa. Se una classe ha molti costruttori e uno di essi utilizza la parola chiave this() per chiamare un altro costruttore, la modifica dell'ordine dei costruttori può modificare il comportamento di un programma.

Un modo diverso per concatenare i costruttori utilizzando il blocco Init

L'utilizzo di un blocco di inizializzazione è un altro approccio al concatenamento del costruttore in Java .Viene eseguita una sezione di codice nota come blocco di inizializzazione be

Elementi essenziali del concatenamento dei costruttori in Java

Quando chiamiamo un Constructor da un altro Constructor della stessa classe, ciò che accade è noto come Constructor Chaining. Lo scopo principale di eseguire Constructor Chaining è passare i parametri attraverso una serie di diversi costruttori e inizializzarli solo in un unico punto. In questo modo, hai la possibilità di mantenere tutte le tue inizializzazioni in un'unica posizione mentre agli utenti possono essere forniti diversi costruttori.

Se non esegui Constructor Chaining e due diversi Costruttori richiedono un parametro, dovrai inizializzare quel parametro due volte. Inoltre, ogni volta che l'inizializzazione cambia, sarà necessario apportare le rispettive modifiche a tutti i costruttori anziché a uno solo.

Come regola generale, dovresti sempre chiamare Costruttori con più argomenti da Costruttori che hanno meno argomenti. Devi anche essere consapevole che possiamo sovraccaricare più Costruttori nella classe. Tuttavia, al momento della creazione di un oggetto, viene chiamato solo un particolare Costruttore. Ci possono essere alcune situazioni durante la programmazione in Java in cui è necessario chiamare più costruttori l'uno dall'altro senza creare oggetti diversi. Questo meccanismo di invocare un costruttore da un altro costruttore e quando quello coinvolto richiama un altro costruttore è noto come concatenamento del costruttore.

Imparai corsi di softwareonline dalle migliori università del mondo.Guadagna programmi Executive PG, programmi di certificazione avanzata o programmi master per accelerare la tua carriera.

Ci sono due cose principali che dovresti tenere a mente riguardo al Constructor Chaining per garantire la massima chiarezza:

  • Lo scopo principale di Constructor Chaining è mantenere il codice. L'idea è di aiutarti a scrivere solo un pezzo di codice che può essere riutilizzato nel tuo programma. In questo modo, non solo il tuo codice sarà pulito e leggibile, ma sarà anche molto più facile da gestire con tutte le correzioni e le modifiche che si verificano solo in una posizione invece che in tutti i Costruttori.
  • Il costruttore che è stato richiamato non crea un oggetto separato. Utilizza invece l'oggetto attualmente in esecuzione per richiamare un altro costruttore. È proprio come chiamare un metodo diverso all'interno del tuo Constructor, tranne per il fatto che è anche un costruttore.

Come hai visto nell'esempio precedente, abbiamo usato questa parola chiave per accedere ai parametri del Constructor. Allo stesso modo, anche Constructor Chaining richiede principalmente due parole chiave. Ecco queste due parole chiave:

  • this - La sua rappresentazione del metodo chiama un costruttore di classe corrente.
  • super : la sua rappresentazione del metodo chiama un costruttore di superclasse super o padre immediato.

Inoltre, dovresti essere a conoscenza di un paio di altri termini e definizioni importanti in termini di Constructor Chaining in Java:

  • Invocazione del costruttore: quando invochi un costruttore e quel costruttore viene richiamato correttamente, è noto come invocazione del costruttore.
  • Esecuzione del costruttore: se si richiama il costruttore, il controllo avvia l'esecuzione delle istruzioni nel corpo del costruttore. È noto come esecuzione del costruttore.

Regole chiave del concatenamento del costruttore in Java

Con le basi di Constructor Chaining risolte, diamo un'occhiata ad alcune regole essenziali per lavorare con Constructor Chaining in Java:

  • this() può chiamare solo i parametri appartenenti allo stesso Costruttore.
  • super() può chiamare solo il costruttore della superclasse immediata.
  • this() e super() dovrebbero essere la prima istruzione nel costruttore.
  • This () e super() non possono essere utilizzati all'interno dello stesso costruttore poiché entrambi gli individui devono essere le prime istruzioni, il che non è praticamente possibile.
  • Non puoi aggiungere this() in tutti i Costruttori della stessa classe, poiché dovrebbe esserci almeno un Costruttore senza l'istruzione this().
  • L'invocazione e l'esecuzione dei costruttori in Java avviene in modo opposto. Quindi, se i Costruttori sono stati chiamati nell'ordine A, B, C, allora l'esecuzione sarà nell'ordine C, B, A.

Ad esempio, qui abbiamo due classi separate che funzionano sovraccaricando Costruttori differenti. Vogliamo eseguire i costruttori in ordine 2, 1, 4, 3, 5.

Per eseguire i costruttori in ordine, dobbiamo chiamare i costruttori esattamente nell'ordine opposto come 5, 3, 4, 1, 2, vedi nell'esempio seguente.

classe Genitore

{

Genitore()// 1

{

questo ("ciao");

System.out.println("in Parent 0 arg costruttore 1");

}

Parent(String msg)// 2

{

System.out.println(“nel costruttore Parent(String) 2”);

}

}

class Constructor estende Parent

{

Costruttore()// 3

{

this(10);// chiama il costruttore di 5 numeri

System.out.println(“in Constructor 0 arg costruttore 3”);

}

Costruttore(String msg)// 4

{

super();//chiama 1 numero costruttore della classe genitore

System.out.println(“in Constructor(String msg) arg costruttore 4”);

}

Costruttore(int i)// 5

{

this ("ciao"); // chiama il costruttore di 4 numeri

System.out.println("in Constructor(int i) costruttore 5");

}

// metodo main()

public static void main(String[] args)

{

Costruttore cobj = new Constructor(); // chiama il costruttore di 3 numeri

}

}

Produzione:

nel costruttore Parent(String) 2

in Parent 0 arg costruttore 1

in Constructor(String msg) arg costruttore 4

in Constructor(int i) costruttore 5

in Costruttore 0 arg costruttore 3

Riassumendo tutti i concetti di Constructors e Constructor Chaining in Java con un ultimo esempio:

classe Imp

{

public String ENome;

public int Guadagni;

indirizzo stringa pubblico;

Emp pubblico()

{

questo ("Rahul");

}

public Emp(nome stringa)

{

this(nome, 140035);

}

public Emp(Nome stringa, int sal)

{

this(nome, sal, “Nuova Delhi”);

}

public Employee(String name, int sal, String add)

{

this.EName=nome;

this.EEarnings=sal;

this.address=aggiungi;

}

void disp() {

System.out.println(“Nome: “+ENome);

System.out.println(“Stipendio: “+EEguadi);

System.out.println(“Indirizzo: “+indirizzo);

}

public static void main(String[] args)

{

Dipendente obj = nuovo Dipendente();

obj.disp();

}

}

Produzione:

Nome del dipendente: Rahul

Stipendio dipendente: 140035

Indirizzo del dipendente: Nuova Delhi

Conclusione

Con ciò, arriviamo alla fine di questo articolo. Ci auguriamo che questo abbia chiarito i tuoi dubbi sul Constructor Chaining in Java e rafforzato ulteriormente la tua comprensione. In upGrad, crediamo nell'aiutare gli studenti di tutto il mondo a raggiungere il loro pieno potenziale e ad avere successo nella loro carriera. I nostri corsi sono progettati tenendo presente sia i neofiti che i professionisti esperti.

Uno di questi corsi è la certificazione PG legata al lavoro di upGrad in ingegneria del software , specificamente progettata per chi cerca lavoro per la prima volta. Dai un'occhiata ai contenuti del corso e iscriviti oggi stesso! Impara tutte le competenze di ingegneria del software rilevanti come Java, DSA, OODAP, JavaScript, MERN, AWS, ecc., da esperti del settore e professionisti leader.

D: È possibile concatenare più di due costruttori in Java?

Java consente un massimo di due catene di costruttori. In questo modo puoi creare oggetti più complessi e ridurre la duplicazione del codice.

D: Quando un costruttore in Java chiama se stesso, cosa succede?

Un costruttore in Java che chiama se stesso risulterà in un errore di overflow dello stack e in un ciclo indefinito.

D: Come appare il costruttore predefinito in Java?

Un costruttore predefinito in Java è quello che non accetta input. Se non c'è un costruttore dichiarato nella classe, ne viene prodotto uno automaticamente.