Java-ohjelmassa konstruktori on menetelmän kaltainen koodilohko. Sitä kutsutaan, kun luokan ilmentymä luodaan. Kun kutsutaan konstruktoria, objektin muisti varataan muistiin.
Se on erityinen menetelmä, jota käytetään objektin alustamiseen.
Joka kerta kun objekti luodaan uudella () avainsanalla, kutsutaan ainakin yksi konstruktori.
Se kutsuu oletuskonstruktoria, jos luokassa ei ole käytettävissä konstruktoria. Tällöin Java-kääntäjä tarjoaa oletusarvoisesti oletusrakentajan.
Javassa on kahden tyyppisiä konstruktoreita: ei-arg-konstruktori ja parametrisoitu konstruktori.
Huomaa: Sitä kutsutaan konstruktori, koska se rakentaa arvot objektin luontihetkellä. Luokalle ei tarvitse kirjoittaa konstruktoria. Tämä johtuu siitä, että java-kääntäjä luo oletusrakentajan, jos luokallasi ei ole mitään.
Java-rakentajan luomissäännöt
Rakentajalle on määritelty kaksi sääntöä.
- Rakentajan nimen on oltava sama kuin sen luokan nimi
- Rakentajalla ei saa olla nimenomaista palautustyyppiä
- Java-konstruktori ei voi olla abstrakti, staattinen, lopullinen ja synkronoitu
Huomaa: Voimme käyttää pääsynmuokkaajia julistaessamme rakentajaa. Se ohjaa objektin luomista. Toisin sanoen meillä voi olla Java: ssa yksityinen, suojattu, julkinen tai oletusrakentaja.
Java-konstruktorityypit
Javalassa on kahden tyyppisiä konstruktoreita:
- Oletuskonstruktori (ei-arg-konstruktori)
- Parametroitu konstruktori
Java-oletusrakentaja
Rakentajaa kutsutaan oletusrakentajaksi, kun sillä ei ole mitään parametri.
Oletuskonstruktorin syntaksi:
Esimerkki oletuskonstruktorista
Tässä esimerkissä luomme no- arg-konstruktori Bike-luokassa. Sitä käytetään objektin luomisen yhteydessä.
Testaa se nyt
Tulos:
Bike is created
Sääntö: Jos luokassa ei ole konstruktoria, kääntäjä luo automaattisesti oletusrakentajan.
Q) Mikä on oletusrakentajan tarkoitus?
Oletusrakentajaa käytetään oletusarvojen, kuten 0, null jne., toimittamiseen objektille tyypistä riippuen.
Esimerkki oletusarvonrakentajasta, joka näyttää oletusarvot
Testaa se nyt
Tulos:
0 null0 null
Selitys: Yllä olevassa luokassa et ole minkä tahansa konstruktorin luominen niin kääntäjä tarjoaa oletuskonstruktorin. Tällöin oletusrakentaja antaa 0 ja nolla-arvot.
Java-parametrisoitu konstruktori
Konstruktoria, jolla on tietty määrä parametreja, kutsutaan parametrisoiduksi konstruktoriksi.
Miksi käyttää parametrisoitua konstruktoria?
Parametroitua konstruktoria käytetään erilaisten arvojen toimittamiseen erillisille kohteille. Voit kuitenkin antaa myös samat arvot.
Esimerkki parametrisoidusta konstruktorista
Tässä esimerkissä olemme luoneet Student-luokan konstruktorin, jolla on kaksi parametria. Konstruktorissa voi olla mikä tahansa määrä parametreja.
Java-ohjelmassa konstruktori on aivan kuin menetelmä, mutta ilman palautustyyppiä. Se voidaan myös ylikuormittaa kuten Java-menetelmät.
Rakentajan ylikuormitus Java-tekniikassa on tekniikka, jolla on useampi kuin yksi konstruktori, jolla on erilaiset parametriluettelot. Ne on järjestetty siten, että kukin rakentaja suorittaa eri tehtävän. Kääntäjä erottaa ne luettelon parametrien lukumäärän ja tyypin mukaan.
Esimerkki rakentajan ylikuormituksesta
Testaa se nyt
Tulos:
111 Karan 0222 Aryan 25
Java-rakentajan ja -menetelmän ero
Rakentajien ja menetelmien välillä on monia eroja. Ne on esitetty alla.
Java Constructor | Java-menetelmä |
---|---|
Objektin tila voidaan alustaa konstruktorilla. | Menetelmää käytetään objektin käyttäytymisen paljastamiseen. |
Konstruktorin on ei ole palautustyyppiä. | Menetelmällä on oltava palautustyyppi. |
Rakentaja kutsutaan implisiittisesti. | Menetelmä kutsutaan nimenomaisesti. |
Java-kääntäjä tarjoaa oletuskonstruktorin, jos sinulla ei ole luokassa mitään konstruktoria. | Menetelmää ei tarjoa kääntäjä joka tapauksessa. |
Rakentajan nimen on oltava sama kuin luokan nimi. | Menetelmän nimi voi olla sama kuin luokka nimi. |
Java Copy Constructor
Javassa ei ole kopiorakentajaa.Voimme kuitenkin kopioida arvot yhdestä objektista toiseen, kuten kopiointirakentaja C ++: ssa.
On monia tapoja kopioida objektien arvot toiseen Java-ohjelmassa. Ne ovat:
- Rakentaja
- Määrittämällä yhden objektin arvot toiselle
- Objektiluokan kloonausmenetelmällä
Tässä esimerkissä aiomme kopioida yhden objektin arvot toiseen Java-konstruktorin avulla.
Testaa se nyt
Output:
111 Karan111 Karan
Arvojen kopiointi ilman konstruktoria
Voimme kopioida yhden objektin arvot toiseen jakamalla objektiarvot toiselle esine. Tässä tapauksessa konstruktoria ei tarvitse luoda.
Testaa se nyt
Tulos:
111 Karan111 Karan
Q) Palauttaako konstruktori mitään arvoa?
Kyllä, se on nykyinen luokan ilmentymä (Palautustyyppiä ei voi käyttää, mutta se palauttaa arvon).
Voiko konstruktori suorittaa muita tehtäviä alustamisen sijasta?
Kyllä, kuten objektin luonti, langan aloittaminen, menetelmän kutsuminen jne. Voit suorittaa minkä tahansa operaattorin konstruktorissa samalla tavalla kuin suoritat metodissa.
Onko Javassa Constructor-luokkaa?
Kyllä.
Mikä on Constructor-luokan tarkoitus?
Java tarjoaa Constructor-luokan, joka voi käytetään luokan rakentajan sisäisten tietojen saamiseen. Se löytyy paketista java.lang.reflect.