A Java-ban a konstruktor a metódushoz hasonló kódblokk. Akkor hívják meg, amikor az osztály egy példánya létrejön. A konstruktor hívásának pillanatában az objektum memóriáját lefoglalják a memóriában.
Ez egy speciális típusú módszer, amelyet az objektum inicializálására használnak.
Minden alkalommal, amikor egy objektum az új () kulcsszóval jön létre, legalább egy konstruktort meghívnak.
Alapértelmezett konstruktort hív meg, ha az osztályban nincs elérhető konstruktor. Ebben az esetben a Java fordító alapértelmezés szerint egy alapértelmezett konstruktort biztosít.
A Java-ban kétféle konstruktor létezik: no-arg konstruktor és paraméterezett konstruktor.
Megjegyzés: Ezt hívják konstruktor, mert az objektum létrehozásakor építi fel az értékeket. Nem szükséges konstruktort írni egy osztályhoz. Ez azért van, mert a java fordító létrehoz egy alapértelmezett konstruktort, ha az osztályának nincs ilyen.
A Java konstruktor létrehozásának szabályai
Két szabály van megadva a konstruktor számára.
- A konstruktor nevének meg kell egyeznie az osztálynevével
- A konstruktornak nem lehet kifejezett visszatérési típusa
- A Java konstruktor nem lehet absztrakt, statikus, végleges és szinkronizált
Megjegyzés: A konstruktor deklarálásakor hozzáférés-módosítókat is használhatunk. Ez vezérli az objektum létrehozását. Vagyis privát, védett, nyilvános vagy alapértelmezett konstruktorunk lehet a Java-ban.
Java-konstruktorok típusai
A Java-ban kétféle konstruktor létezik:
- Alapértelmezett konstruktor (no-arg konstruktor)
- Paraméterezett konstruktor
Java alapértelmezett konstruktor
A konstruktort akkor hívjuk “Alapértelmezett konstruktornak”, ha nincs ” paraméter.
Az alapértelmezett konstruktor szintaxisa:
Példa az alapértelmezett konstruktorra
Ebben a példában a no- arg konstruktor a Bike osztályban. Erre az objektum létrehozásakor kerül sor.
Most tesztelje
Kimenet:
Bike is created
Szabály: Ha egy osztályban nincs konstruktor, a fordító automatikusan létrehoz egy alapértelmezett konstruktort.
K) Mi a célja az alapértelmezett konstruktornak?
Az alapértelmezett konstruktort használják az objektum alapértelmezett értékeinek, például 0, null stb. megadására, a típustól függően.
Példa az alapértelmezett konstruktorra, amely megjeleníti az alapértelmezett értékeket
Most tesztelje
Kimenet:
0 null0 null
Magyarázat: A fenti osztályban nem bármilyen konstruktort létrehozva, így a fordító alapértelmezett konstruktort kap. Itt 0 és null értékeket ad meg az alapértelmezett konstruktor.
Java paraméterezett konstruktor
Egy meghatározott számú paramétert tartalmazó konstruktort paraméterezett konstruktornak nevezünk.
Miért érdemes használni a paraméterezett konstruktort?
A paraméterezett konstruktort különböző értékek megadására használják különálló objektumokhoz. Ugyanakkor megadhatja ugyanazokat az értékeket is.
Példa a paraméterezett konstruktorra
Ebben a példában hoztuk létre a Student osztály konstruktorát, amelynek két paramétere van. Bármennyi paraméter lehet a konstruktorban.
Most tesztelje
Kimenet:
111 Karan222 Aryan
Konstruktor túlterhelése Java-ban
A Java-ban a konstruktor olyan, mint egy metódus, de nincs visszatérési típus. Túlterhelhető is, mint a Java metódusok.
A konstruktor túlterhelése a Java-ban egy olyan technika, amelynél egynél több konstruktor rendelkezik különböző paraméterlistákkal. Úgy vannak elrendezve, hogy az egyes kivitelezők különböző feladatokat hajtsanak végre. A fordító megkülönbözteti őket a listában szereplő paraméterek száma és típusai szerint.
Példa a konstruktor túlterhelésére
Tesztelje most
Kimenet:
111 Karan 0222 Aryan 25
A konstruktor és a módszer közötti különbség a Java-ban
A konstruktorok és a módszerek között sok különbség van. Az alábbiakban megadjuk őket.
Java Constructor | Java Method |
---|---|
Konstruktort használnak az objektum állapotának inicializálására. | Metódust használnak az objektum viselkedésének feltárására. |
A konstruktornak meg kell nincs visszatérési típusa. | A metódusnak rendelkeznie kell visszatérési típussal. |
A konstruktort implicit módon hívják meg. | A metódus kifejezetten meghívásra kerül. |
A Java fordító alapértelmezett konstruktort biztosít, ha nem rendelkezik egy konstruktorral egy osztályban. | A módszert nem a a fordító mindenképpen. |
A konstruktor nevének meg kell egyeznie az osztály nevével. | A metódus neve lehet, hogy nem ugyanaz, mint az osztály. név. |
Java Copy Constructor
A Java-ban nincs másolatkészítő.Átmásolhatjuk az értékeket az egyik objektumból a másikba, például a copy konstruktorba a C ++ – ban.
Sokféleképpen másolhatjuk az egyik objektum értékét a másikba a Java-ban. Ezek:
- konstruktor által
- az egyik objektum értékeinek a másikhoz rendelésével
- az Object class klón () módszerével
Ebben a példában az egyik objektum értékét átmásoljuk a másikba a Java konstruktor segítségével.
Most tesztelje
Kimenet:
111 Karan111 Karan
Értékek másolása konstruktor nélkül
Az egyik objektum értékét átmásolhatjuk a másikba az objektumértékek hozzárendelésével egy másikhoz tárgy. Ebben az esetben nincs szükség a konstruktor létrehozására.
Most tesztelje
Kimenet:
111 Karan111 Karan
Q) A konstruktor ad-e vissza valamilyen értéket?
Igen, ez az aktuális osztálypéldány (a return típust még nem használhatja, de értéket ad vissza).
Végezhet-e a konstruktor más feladatokat az inicializálás helyett?
Igen, például az objektum létrehozása, a szál elindítása, a módszer meghívása stb. Bármely műveletet elvégezhet a konstruktorban, ahogy a metódusban is.
Van Constructor osztály a Java-ban?
Igen.
Mi a Constructor osztály célja?
A Java olyan Constructor osztályt nyújt, amely képes felhasználható az osztályban lévő konstruktor belső információinak megszerzésére. A java.lang.reflect csomagban található.