I Java er en konstruktør en blokk med koder som ligner på metoden. Det kalles når en forekomst av klassen opprettes. På tidspunktet for anropskonstruktøren tildeles minne for objektet i minnet.
Det er en spesiell type metode som brukes til å initialisere objektet.
Hver gang et objekt opprettes ved hjelp av det nye () nøkkelordet, kalles det minst en konstruktør.
Det kaller en standardkonstruktør hvis det ikke er noen konstruktør tilgjengelig i klassen. I et slikt tilfelle gir Java-kompilator en standardkonstruktør som standard.
Det er to typer konstruktører i Java: no-arg-konstruktør og parametrerte konstruktør.
Merk: Det kalles konstruktør fordi den konstruerer verdiene på tidspunktet for objektopprettelsen. Det er ikke nødvendig å skrive en konstruktør for en klasse. Det er fordi Java-kompilator oppretter en standardkonstruktør hvis klassen din ikke har noen.
Regler for å lage Java-konstruktør
Det er to regler definert for konstruktøren.
- Navn på konstruktør må være det samme som klassens navn
- En konstruktør må ikke ha noen eksplisitt returtype
- En Java-konstruktør kan ikke være abstrakt, statisk, endelig og synkronisert
Merk: Vi kan bruke tilgangsmodifikatorer mens vi erklærer en konstruktør. Den styrer objektopprettelsen. Med andre ord kan vi ha private, beskyttede, offentlige eller standardkonstruktører i Java.
Typer Java-konstruktører
Det er to typer konstruktører i Java:
- Standardkonstruktør (ingen arg-konstruktør)
- Parameterisert konstruktør
Java standardkonstruktør
En konstruktør kalles «Standardkonstruktør» når den ikke har noen parameter.
Syntaks til standardkonstruktør:
Eksempel på standardkonstruktør
I dette eksemplet lager vi no- arg konstruktør i Bike-klassen. Det vil bli påkalt på tidspunktet for oppretting av objekt.
Test det nå
Output:
Bike is created
Regel: Hvis det ikke er noen konstruktør i en klasse, oppretter kompilator automatisk en standardkonstruktør.
Q) Hva er formålet med en standardkonstruktør?
Standardkonstruktøren brukes til å gi standardverdiene til objektet som 0, null osv., avhengig av typen.
Eksempel på standardkonstruktør som viser standardverdiene
Test det nå
Output:
0 null0 null
Forklaring: I ovennevnte klasse er du ikke lage en hvilken som helst konstruktør slik at kompilatoren gir deg en standardkonstruktør. Her er 0 og nullverdier gitt av standardkonstruktøren.
Java Parameterized Constructor
En konstruktør som har et spesifikt antall parametere kalles en parameterisert konstruktør.
Hvorfor bruke den parameteriserte konstruktøren?
Den parameteriserte konstruktøren brukes til å gi forskjellige verdier til forskjellige objekter. Du kan imidlertid også oppgi de samme verdiene.
Eksempel på parameteriserte konstruktører
I dette eksemplet har vi opprettet konstruktøren til studentklassen som har to parametere. Vi kan ha et hvilket som helst antall parametere i konstruktøren.
Test det nå
Output:
111 Karan222 Aryan
Constructor Overloading in Java
I Java er en konstruktør akkurat som en metode, men uten returtype. Det kan også overbelastes som Java-metoder.
Overbelastning av konstruktører i Java er en teknikk for å ha mer enn en konstruktør med forskjellige parameterlister. De er ordnet slik at hver konstruktør utfører en annen oppgave. De differensieres av kompilatoren etter antall parametere i listen og deres typer.
Eksempel på overbelastning av konstruktører
Test det nå
Output:
111 Karan 0222 Aryan 25
Forskjell mellom konstruktør og metode i Java
Det er mange forskjeller mellom konstruktører og metoder. De er gitt nedenfor.
Java Constructor | Java Method |
---|---|
En konstruktør brukes til å initialisere tilstanden til et objekt. | En metode brukes til å avsløre oppførselen til et objekt. |
En konstruktør må ikke ha en returtype. | En metode må ha en returtype. |
Konstruktøren påkalles implisitt. | Metoden påkalles eksplisitt. |
Java-kompilatoren gir en standardkonstruktør hvis du ikke har noen konstruktører i en klasse. | Metoden er ikke levert av kompilatoren i alle fall. |
Konstruktørnavnet må være det samme som klassenavnet. | Metodenavnet kan eller ikke kan være det samme som klassen navn. |
Java Copy Constructor
Det er ingen kopikonstruktører i Java.Imidlertid kan vi kopiere verdiene fra ett objekt til et annet som kopikonstruktør i C ++.
Det er mange måter å kopiere verdiene til et objekt til et annet i Java. De er:
- Av konstruktør
- Ved å tilordne verdiene til ett objekt til et annet
- Ved clone () -metode i Objektklasse
I dette eksemplet skal vi kopiere verdiene til ett objekt til et annet ved hjelp av Java-konstruktør.
Test det nå
Output:
111 Karan111 Karan
Kopiering av verdier uten konstruktør
Vi kan kopiere verdiene til ett objekt til et annet ved å tilordne objektverdiene til en annen gjenstand. I dette tilfellet er det ikke nødvendig å opprette konstruktøren.
Test det nå
Output:
111 Karan111 Karan
Q) Returnerer konstruktør noen verdi?
Ja, det er den gjeldende klasseforekomsten (Du kan ikke bruke returtype ennå, den returnerer en verdi).
Kan konstruktør utføre andre oppgaver i stedet for initialisering?
Ja, som å opprette objekter, starte en tråd, ringe til en metode osv. Du kan utføre en hvilken som helst operasjon i konstruktøren mens du utfører i metoden.
Er det konstruktorklasse i Java?
Ja.
Hva er formålet med konstruktorklasse?
Java gir en konstruktorklasse som kan brukes til å få den interne informasjonen til en konstruktør i klassen. Den finnes i pakken java.lang.reflect.