logo

Mitä konstruktoriketjutus on Javassa?

Javalla, rakentajan ketjuttaminen on kutsujen sarja rakentajat objektin alustuksen yhteydessä. Sitä käytetään, kun haluamme kutsua useita konstruktoreita peräkkäin käyttämällä vain esiintymää. Tässä osiossa keskustelemme rakentajien ketjuttaminen Javassa yksityiskohtaisesti oikeilla esimerkeillä. Katsotaanpa nopeasti mikä on konstruktori Javassa.

Rakentaja

Sisään Java , konstruktori on sama kuin metodi, mutta ainoa ero on, että konstruktorilla on sama nimi kuin luokan nimellä. Sitä käytetään luomaan luokan esiintymä. Sitä kutsutaan automaattisesti, kun luomme luokan objektin. Sillä ei ole palautustyyppiä. Muista, että rakentaja ei voi olla abstrakti , lopullinen , synkronoitu , ja staattinen . Emme voi ohittaa rakentajaa.

Javassa on kahdenlaisia ​​rakentajia:

  • Oletuskonstruktori (tunnetaan myös nimellä ei-argumenttikonstruktori)
  • Parametrisoitu konstruktori

Rakentajan ketjutus

Konstruktoriketjussa konstruktoria kutsutaan toisesta konstruktorista samassa luokassa kuin tämä prosessi tunnetaan rakentajan ketjuttaminen. Se tapahtuu perinnön kautta. Kun luomme johdetun luokan ilmentymän, kaikki perityn luokan (perusluokan) konstruktorit kutsutaan ensin, jonka jälkeen kutsutaan kutsuvan luokan (johdettu luokka) konstruktori.

Voimme saavuttaa rakentajien ketjutuksen kahdella tavalla:

vuosineljänneksiä
    Samalla luokalla:Jos konstruktorit kuuluvat samaan luokkaan, käytämme Tämä Perusluokasta:Jos konstruktori kuuluu eri luokkiin (ylä- ja lapsiluokkiin), käytämme super avainsana, joka kutsuu rakentajan perusluokasta.

Muista, että konstruktorin järjestyksen muuttaminen ei vaikuta lähtöön.

Mitä on konstruktoriketjutus Javassa

Rakentajan ketjutuksen tarve

Oletetaan, että suoritettavana on viisi tehtävää. On kaksi tapaa suorittaa nämä tehtävät: joko toteuttaa kaikki tehtävät yhdessä rakentajassa tai luoda erilliset tehtävät yhdessä rakentajassa.

Konstruktoriketjutusmekanismia käyttämällä voimme toteuttaa useita tehtäviä yhdessä rakentajassa. Joten aina kun kohtaamme tämäntyyppisiä ongelmia, meidän tulisi käyttää rakentajien ketjutusta. Voimme tehdä ohjelmasta luettavamman ja ymmärrettävämmän käyttämällä konstruktoriketjutusta.

Rakentajan ketjutuksen säännöt

  • Ilmaisu, joka käyttää Tämä avainsanan on oltava rakentajan ensimmäinen rivi.
  • Tilaussillä ei ole merkitystä rakentajien ketjutuksessa.
  • On oltava vähintään yksi rakentaja, joka ei käytä Tämä

Rakentajan kutsuminen toisesta rakentajasta

Rakentajan kutsuminen voidaan tehdä kahdella tavalla:

    Käyttämällä tätä() avainsanaa:Sitä käytetään, kun haluamme kutsua nykyistä luokan rakentajaa samassa luokassa.Käyttämällä super()-avainsanaa:Sitä käytetään, kun haluamme kutsua superluokan konstruktoria perusluokasta.

Huomaa: Samassa konstruktorilohkossa emme voi käyttää tätä()- ja super()-toimintoa samanaikaisesti.

Ymmärretään nämä kaksi käsitettä Java-ohjelmien kautta.

unix vs windows

Esimerkkejä rakentajien ketjutuksesta

Soitetaan nykyisen luokan rakentajalle

Käytämme Tämä() avainsana, jos haluamme kutsua nykyistä luokan rakentajaa samassa luokassa. Tämän():n käyttö on pakollista, koska JVM koskaan laita sitä automaattisesti kuten super() avainsana. Huomaa, että tämän() on konstruktorin ensimmäinen rivi. On oltava olemassa vähintään yksi rakentaja ilman tämä() avainsana .

Syntaksi:

 this(); or this(parameters list); 

Esimerkiksi:

 this(); this('Javatpoint'); 

Luodaan Java-ohjelma ja kutsutaan nykyinen luokan rakentaja.

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(); } } 

Lähtö:

tyyppiset muuttujat java
Mitä on konstruktoriketjutus Javassa

Yllä olevassa esimerkissä olemme luoneet luokan esiintymän välittämättä mitään parametria. Se kutsuu ensin oletuskonstruktoria ja oletuskonstruktori ohjaa kutsun parametrisoituun tämän() takia. Parametrisoidun konstruktorin sisällä olevat käskyt suoritetaan ja palaavat oletuskonstruktoriin. Sen jälkeen loput oletuskonstruktorin käskyt suoritetaan ja objekti alustetaan onnistuneesti. Seuraava on konstruktorin kutsusekvenssi:

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

Soitan superluokan rakentajalle

Joskus meidän on kutsuttava superluokan (emoluokka) konstruktori aliluokan (johdettu luokka) luokasta, tällaisissa tapauksissa käytämme super()-avainsanaa johdetussa luokan rakentajassa. Super():n kirjoittaminen on valinnaista, koska JVM laittaa sen automaattisesti. Se tulee kirjoittaa aina ensimmäiselle riville. Saamme syntaksivirheen, jos yritämme kutsua superluokan konstruktoria lapsiluokassa.

Syntaksi:

 super(); or super(Parameter List); 

super(): Se kutsuu superluokan ei-argumenttia tai oletuskonstruktoria.

powershell vs bash

super(parametrit): Se kutsuu superluokan parametroidun konstruktorin.

Muista, että superluokan konstruktoria ei voi periä alaluokassa. Se voidaan kutsua alaluokan konstruktorista käyttämällä super-avainsanaa.

Tehdään Java-ohjelma ja toteutetaan konstruktoriketjutus periytyvässä luokassa.

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(); } } 

Lähtö:

Mitä on konstruktoriketjutus Javassa