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ä
Muista, että konstruktorin järjestyksen muuttaminen ei vaikuta lähtöön.
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.
- On oltava vähintään yksi rakentaja, joka ei käytä Tämä
Rakentajan kutsuminen toisesta rakentajasta
Rakentajan kutsuminen voidaan tehdä kahdella tavalla:
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
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ö: