I Java är en konstruktör ett block med koder som liknar metoden. Det kallas när en instans av klassen skapas. Vid tidpunkten för anropskonstruktören allokeras minne för objektet i minnet.
Det är en speciell typ av metod som används för att initialisera objektet.
Varje gång ett objekt skapas med hjälp av det nya nyckelordet kallas minst en konstruktör.
Det anropar en standardkonstruktör om det inte finns någon konstruktör tillgänglig i klassen. I ett sådant fall tillhandahåller Java-kompilatorn en standardkonstruktör som standard.
Det finns två typer av konstruktörer i Java: konstruktör utan arg och parametrerad konstruktor.
Obs! Det kallas konstruktör eftersom den konstruerar värdena vid tidpunkten för objektskapandet. Det är inte nödvändigt att skriva en konstruktör för en klass. Det beror på att Java-kompilatorn skapar en standardkonstruktör om din klass inte har någon.
Regler för att skapa Java-konstruktör
Det finns två regler som definierats för konstruktören.
- Konstruktörens namn måste vara detsamma som klassens namn
- En konstruktör får inte ha någon uttrycklig returtyp
- En Java-konstruktör kan inte vara abstrakt, statisk, slutlig och synkroniserad
Obs! Vi kan använda åtkomstmodifierare när vi deklarerar en konstruktör. Den styr skapandet av objekt. Med andra ord kan vi ha privata, skyddade, offentliga eller standardkonstruktörer i Java.
Typer av Java-konstruktörer
Det finns två typer av konstruktörer i Java:
- Standardkonstruktör (ingen arg-konstruktör)
- Parameteriserad konstruktör
Java-standardkonstruktör
En konstruktör kallas ”Standardkonstruktör” när den inte har någon parameter.
Syntax för standardkonstruktör:
Exempel på standardkonstruktör
I det här exemplet skapar vi nr- arg konstruktör i cykelklassen. Det kommer att åberopas när objektet skapas.
Testa det nu
Output:
Bike is created
Regel: Om det inte finns någon konstruktör i en klass skapar kompilatorn automatiskt en standardkonstruktör.
F) Vad är syftet med en standardkonstruktör?
Standardkonstruktören används för att tillhandahålla standardvärdena till objektet som 0, null etc., beroende på typ.
Exempel på standardkonstruktör som visar standardvärdena
Testa det nu
Output:
0 null0 null
Förklaring: I ovanstående klass är du inte skapa valfri konstruktör så att kompilatorn ger dig en standardkonstruktör. Här tillhandahålls 0 och null-värden av standardkonstruktören.
Java Parameterized Constructor
En konstruktör som har ett specifikt antal parametrar kallas en parametrerad konstruktor.
Varför använda den parametrerade konstruktorn?
Den parametrerade konstruktorn används för att ge olika värden till olika objekt. Du kan dock också tillhandahålla samma värden.
Exempel på parametrerad konstruktor
I det här exemplet har vi skapat konstruktorn för studentklassen som har två parametrar. Vi kan ha valfritt antal parametrar i konstruktören.
Testa det nu
Output:
111 Karan222 Aryan
Överbelastning av konstruktör i Java
I Java är en konstruktör precis som en metod men utan returtyp. Det kan också överbelastas som Java-metoder.
Överbelastning av konstruktörer i Java är en teknik för att ha mer än en konstruktör med olika parameterlistor. De är ordnade så att varje konstruktör utför en annan uppgift. De differentieras av kompilatorn med antalet parametrar i listan och deras typer.
Exempel på konstruktionsöverbelastning
Testa det nu
Output:
111 Karan 0222 Aryan 25
Skillnad mellan konstruktör och metod i Java
Det finns många skillnader mellan konstruktörer och metoder. De ges nedan.
Java Constructor | Java Method |
---|---|
En konstruktör används för att initialisera ett objekts tillstånd. | En metod används för att exponera beteendet hos ett objekt. |
En konstruktör måste inte ha en returtyp. | En metod måste ha en returtyp. |
Konstruktorn anropas implicit. | Metoden anropas uttryckligen. |
Java-kompilatorn tillhandahåller en standardkonstruktör om du inte har någon konstruktör i en klass. | Metoden tillhandahålls inte av kompilatorn i alla fall. |
Konstruktörens namn måste vara detsamma som klassnamnet. | Metodnamnet kan eller kanske inte är detsamma som klassen namn. |
Java Copy Constructor
Det finns ingen kopikonstruktör i Java.Vi kan emellertid kopiera värdena från ett objekt till ett annat som en kopieringskonstruktör i C ++.
Det finns många sätt att kopiera värdena för ett objekt till ett annat i Java. De är:
- Av konstruktör
- Genom att tilldela värdena för ett objekt till ett annat
- Genom klon () -metod av objektklass
I det här exemplet ska vi kopiera värdena för ett objekt till ett annat med hjälp av Java-konstruktorn.
Testa det nu
Output:
111 Karan111 Karan
Kopiering av värden utan konstruktör
Vi kan kopiera värdena för ett objekt till ett annat genom att tilldela objektvärdena till ett annat objekt. I det här fallet finns det inget behov av att skapa konstruktorn.
Testa det nu
Output:
111 Karan111 Karan
F) Returnerar konstruktören något värde?
Ja, det är den aktuella klassinstansen (Du kan inte använda returtypen men returnerar ett värde).
Kan konstruktör utföra andra uppgifter istället för initialisering?
Ja, som att skapa objekt, starta en tråd, anropa en metod, etc. Du kan utföra alla operationer i konstruktören när du utför i metoden.
Finns det konstruktorklass i Java?
Ja.
Vad är syftet med konstruktorklass?
Java tillhandahåller en konstruktorklass som kan användas för att få den interna informationen från en konstruktör i klassen. Det finns i paketet java.lang.reflect.