logo

Kaj je veriženje konstruktorjev v Javi?

V Javi, veriženje konstruktorja je zaporedje klicanja konstruktorji ob inicializaciji predmeta. Uporablja se, ko želimo priklicati več konstruktorjev enega za drugim z uporabo samo primerka. V tem razdelku bomo razpravljali veriženje konstruktorja v Javi podrobno z ustreznimi primeri. Oglejmo si na hitro kaj je konstruktor v Javi.

Konstruktor

notri Java , je konstruktor enak metodi, vendar je edina razlika v tem, da ima konstruktor isto ime kot ime razreda. Uporablja se za ustvarjanje primerka razreda. Pokliče se samodejno, ko ustvarimo objekt razreda. Nima povratne vrste. Ne pozabite, da konstruktor ne more biti povzetek , dokončno , sinhronizirano , in statična . Konstruktorja ne moremo preglasiti.

V Javi obstajata dve vrsti konstruktorjev:

  • Privzeti konstruktor (znan tudi kot konstruktor brez argumentov)
  • Parametriziran konstruktor

Veriženje konstruktorja

V verigi konstruktorjev je konstruktor poklican iz drugega konstruktorja v istem razredu, kot je ta proces znan veriženje konstruktorja. Pojavi se z dedovanjem. Ko ustvarimo primerek izpeljanega razreda, se najprej pokličejo vsi konstruktorji podedovanega razreda (osnovni razred), nato pa se pokliče konstruktor klicnega razreda (izpeljanega razreda).

Veriženje konstruktorjev lahko dosežemo na dva načina:

kako ustvariti matriko v Javi
    V istem razredu:Če konstruktorji pripadajo istemu razredu, uporabimo to Iz osnovnega razreda:Če konstruktor pripada različnim razredom (starševski in podrejeni razred), uporabimo super ključna beseda za klic konstruktorja iz osnovnega razreda.

Ne pozabite, da sprememba vrstnega reda konstruktorja ne vpliva na izhod.

Kaj je veriženje konstruktorjev v Javi

Potreba po veriženju konstruktorjev

Recimo, da je treba opraviti pet nalog. Te naloge lahko izvajate na dva načina, in sicer implementacijo vseh nalog v enem samem konstruktorju ali ustvarjanje ločenih nalog v enem samem konstruktorju.

Z uporabo mehanizma veriženja konstruktorjev lahko izvajamo več nalog v enem samem konstruktorju. Torej, kadar koli se soočimo s tovrstnimi težavami, bi morali uporabiti veriženje konstruktorjev. Z veriženjem konstruktorjev naredimo program bolj berljiv in razumljiv.

Pravila veriženja konstruktorjev

  • Izraz, ki uporablja to ključna beseda mora biti prva vrstica konstruktorja.
  • naročilopri veriženju konstruktorja ni pomembno.
  • Obstajati mora vsaj en konstruktor, ki ne uporablja to

Konstruktor Klicanje drugega konstruktorja

Priklic konstruktorja se lahko izvede na dva načina:

    Z uporabo ključne besede this():Uporablja se, ko želimo poklicati trenutni konstruktor razreda znotraj istega razreda.Z uporabo ključne besede super():Uporablja se, ko želimo poklicati konstruktor nadrazreda iz osnovnega razreda.

Opomba: v istem bloku konstruktorja ne moremo hkrati uporabiti this() in super().

Razumejmo ta dva koncepta skozi programe Java.

vključite programiranje c

Primeri veriženja konstruktorjev

Klicanje trenutnega konstruktorja razreda

Uporabljamo to () če želimo poklicati trenutni konstruktor razreda znotraj istega razreda. Uporaba this() je obvezna, ker JVM nikoli ne postavite samodejno kot super() ključna beseda. Upoštevajte, da mora biti this() prva vrstica konstruktorja. Obstajati mora vsaj en konstruktor brez ta() ključna beseda .

Sintaksa:

 this(); or this(parameters list); 

Na primer:

 this(); this('Javatpoint'); 

Ustvarimo program Java in pokličimo trenutni konstruktor razreda.

ConstructorChain.java

 public class ConstructorChain { //default constructor ConstructorChain() { this('Javatpoint'); System.out.println('Default constructor called.'); } //parameterized constructor ConstructorChain(String str) { System.out.println('Parameterized constructor called'); } //main method public static void main(String args[]) { //initializes the instance of example class ConstructorChain cc = new ConstructorChain(); } } 

Izhod:

regexp_like v mysql
Kaj je veriženje konstruktorjev v Javi

V zgornjem primeru smo ustvarili primerek razreda brez posredovanja parametrov. Najprej pokliče privzeti konstruktor in privzeti konstruktor preusmeri klic na parametriziranega zaradi this(). Stavki znotraj parametriranega konstruktorja se izvedejo in vrnejo nazaj k privzetemu konstruktorju. Po tem se izvedejo preostali stavki v privzetem konstruktorju in objekt je uspešno inicializiran. Sledi klicno zaporedje konstruktorja:

 ConstructorChain cc = new ConstructorChain(); -> ConstructorChain() -> ConstructorChain(String str) -> System.out.println() -> ConstructorChain() -> System.out.println() 

Klicanje Super Class Constructor

Včasih moramo poklicati konstruktor nadrazreda (nadrejeni razred) iz podrejenega razreda (izpeljanega razreda). V takih primerih uporabimo ključno besedo super() v konstruktorju izpeljanega razreda. Napisati super() ni obvezno, ker ga JVM samodejno postavi. Vedno naj piše v prvi vrstici. Dobimo sintaktično napako, če poskušamo poklicati konstruktor nadrazreda v podrejenem razredu.

Sintaksa:

 super(); or super(Parameter List); 

super(): Pokliče brezargumentni ali privzeti konstruktor nadrazreda.

kako pretvoriti int v niz

super(parametri): Prikliče parametrizirani konstruktor nadrazreda.

Ne pozabite, da konstruktorja nadrazreda ni mogoče podedovati v podrazredu. Lahko ga pokličete iz konstruktorja podrazreda z uporabo ključne besede super.

Ustvarimo program Java in implementirajmo veriženje konstruktorja v podedovanem razredu.

ConstructorChaining.java

 //parent class or base class class Demo { //base class default constructor Demo() { this(80, 90); System.out.println('Base class default constructor called'); } //base class parameterized constructor Demo(int x, int y) { System.out.println('Base class parameterized constructor called'); } } //derived class or child class class Prototype extends Demo { //derived class default constructor Prototype() { this('Java', 'Python'); System.out.println('Derived class default constructor called'); } //derived class parameterized constructor Prototype(String str1, String str2) { super(); System.out.println('Derived class parameterized constructor called'); } } public class ConstructorChaining { //main method public static void main(String args[]) { //initializes the instance of example class Prototype my_example = new Prototype(); } } 

Izhod:

Kaj je veriženje konstruktorjev v Javi