Konstruktører i Java

I Java er en konstruktør en blok af koder, der ligner metoden. Det kaldes, når en instans af klassen oprettes. På tidspunktet for kaldende konstruktør allokeres hukommelse til objektet i hukommelsen.

Det er en speciel type metode, der bruges til at initialisere objektet.

Hver gang et objekt oprettes ved hjælp af det nye nøgleord (), kaldes mindst en konstruktør.

Det kalder en standardkonstruktør, hvis der ikke er nogen konstruktør tilgængelig i klassen. I et sådant tilfælde leverer Java-kompilator en standardkonstruktør som standard.

Der er to typer konstruktører i Java: no-arg-konstruktør og parametreret konstruktor.

Bemærk: Det kaldes konstruktør, fordi den konstruerer værdierne på tidspunktet for oprettelse af objekt. Det er ikke nødvendigt at skrive en konstruktør til en klasse. Det skyldes, at java-kompilator opretter en standardkonstruktør, hvis din klasse ikke har nogen.

Regler for oprettelse af Java-konstruktør

Der er to regler defineret for konstruktøren.

  1. Konstruktørnavn skal være det samme som klassens navn
  2. En konstruktør må ikke have nogen eksplicit returtype
  3. En Java-konstruktør kan ikke være abstrakt, statisk, endelig og synkroniseret

Bemærk: Vi kan bruge adgangsmodifikatorer, mens vi erklærer en konstruktør. Det styrer oprettelsen af objektet. Med andre ord kan vi have private, beskyttede, offentlige eller standardkonstruktører i Java.

Typer af Java-konstruktører

Der er to typer konstruktører i Java:

  1. Standardkonstruktør (ingen arg-konstruktør)
  2. Parameteriseret konstruktør

Java-standardkonstruktør

En konstruktør kaldes “Standardkonstruktør”, når den ikke har nogen parameter.

Syntaks for standardkonstruktør:

Eksempel på standardkonstruktør

I dette eksempel opretter vi no- arg konstruktør i cykelklassen. Det vil blive påberåbt på tidspunktet for oprettelse af objekt.

Test det nu

Output:

Bike is created

Regel: Hvis der ikke er nogen konstruktør i en klasse, opretter kompilator automatisk en standardkonstruktør.

Q) Hvad er formålet med en standardkonstruktør?

Standardkonstruktøren bruges til at give standardværdierne til objektet som 0, null osv. afhængigt af typen.

Eksempel på standardkonstruktør, der viser standardværdierne

Test det nu

Output:

0 null0 null

Forklaring: I ovenstående klasse er du ikke oprettelse af en hvilken som helst konstruktør, så kompilatoren giver dig en standardkonstruktør. Her tilvejebringes 0 og nulværdier af standardkonstruktøren.

Java Parameterized Constructor

En konstruktør, der har et specifikt antal parametre, kaldes en parameteriseret constructor.

Hvorfor bruge den parametriserede konstruktør?

Den parametriserede konstruktør bruges til at give forskellige værdier til forskellige objekter. Du kan dog også angive de samme værdier.

Eksempel på parametriserede konstruktører

I dette eksempel har vi oprettet konstruktøren af klasse Student, der har to parametre. Vi kan have et vilkårligt antal parametre i konstruktøren.

Test det nu

Output:

111 Karan222 Aryan

Overbelastning af konstruktør i Java

I Java er en konstruktør ligesom en metode, men uden returtype. Det kan også overbelastes som Java-metoder.

Overbelastning af konstruktører i Java er en teknik til at have mere end en konstruktør med forskellige parameterlister. De er arrangeret på en sådan måde, at hver konstruktør udfører en anden opgave. De differentieres af kompilatoren efter antallet af parametre på listen og deres typer.

Eksempel på konstruktøroverbelastning

Test det nu

Output:

111 Karan 0222 Aryan 25

Forskel mellem konstruktør og metode i Java

Der er mange forskelle mellem konstruktører og metoder. De er angivet nedenfor.

Java Constructor Java Method
En konstruktør bruges til at initialisere et objekts tilstand. En metode bruges til at eksponere et objekts opførsel.
En konstruktør skal ikke have en returtype. En metode skal have en returtype.
Konstruktøren påberåbes implicit. Metoden påkaldes eksplicit.
Java-kompilatoren leverer en standardkonstruktør, hvis du ikke har nogen konstruktør i en klasse. Metoden leveres ikke af kompilatoren under alle omstændigheder.
Konstruktørnavnet skal være det samme som klassens navn. Metodenavnet kan eller ikke kan være det samme som klassen navn.

Java Copy Constructor

Der er ingen kopikonstruktør i Java.Vi kan dog kopiere værdierne fra et objekt til et andet som en kopikonstruktør i C ++.

Der er mange måder at kopiere værdierne på et objekt til et andet i Java. De er:

  • Af konstruktør
  • Ved at tildele værdierne for et objekt til et andet
  • Efter klon () -metode af objektklasse

I dette eksempel skal vi kopiere værdierne for et objekt til et andet ved hjælp af Java-konstruktør.

Test det nu

Output:

111 Karan111 Karan

Kopiering af værdier uden konstruktør

Vi kan kopiere værdierne for et objekt til et andet ved at tildele objektværdierne til en anden objekt. I dette tilfælde er der ikke behov for at oprette konstruktøren.

Test det nu

Output:

111 Karan111 Karan

Q) Returnerer konstruktør nogen værdi?

Ja, det er den aktuelle klasseinstans (Du kan ikke bruge returtype, men den returnerer en værdi).

Kan konstruktør udføre andre opgaver i stedet for initialisering?

Ja, som oprettelse af objekter, start af en tråd, kald til en metode osv. Du kan udføre enhver handling i konstruktøren, mens du udfører i metoden.

Er der konstruktorklasse i Java?

Ja.

Hvad er formålet med konstruktorklasse?

Java giver en konstruktorklasse, som kan bruges til at få den interne information fra en konstruktør i klassen. Det findes i pakken java.lang.reflect.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *