Konstruktorok a Java-ban

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.

  1. A konstruktor nevének meg kell egyeznie az osztálynevével
  2. A konstruktornak nem lehet kifejezett visszatérési típusa
  3. 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:

  1. Alapértelmezett konstruktor (no-arg konstruktor)
  2. 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ó.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük