In Java is een constructor een codeblok dat lijkt op de methode. Het wordt aangeroepen wanneer een instantie van de klasse wordt gemaakt. Op het moment dat de constructor wordt aangeroepen, wordt geheugen voor het object in het geheugen toegewezen.
Het is een speciaal type methode dat wordt gebruikt om het object te initialiseren.
Elke keer dat een object wordt gemaakt met het trefwoord new (), wordt ten minste één constructor aangeroepen.
Het roept een standaard constructor aan als er geen constructor beschikbaar is in de klasse. In dat geval biedt de Java-compiler standaard een standaard constructor.
Er zijn twee soorten constructors in Java: no-arg constructor en geparametriseerde constructor.
Opmerking: het wordt genoemd constructor omdat het de waarden construeert op het moment dat het object wordt gemaakt. Het is niet nodig om een constructor voor een klasse te schrijven. Het is omdat de java-compiler een standaardconstructor maakt als uw klasse die niet heeft.
Regels voor het maken van een Java-constructor
Er zijn twee regels gedefinieerd voor de constructor.
- Constructornaam moet hetzelfde zijn als de klassenaam
- Een constructor mag geen expliciet retourneringstype hebben
- Een Java-constructor mag niet abstract, statisch, definitief en gesynchroniseerd
Opmerking: we kunnen toegangsmodificatoren gebruiken tijdens het declareren van een constructor. Het controleert het maken van objecten. Met andere woorden, we kunnen een private, beschermde, publieke of standaard constructor hebben in Java.
Typen Java-constructors
Er zijn twee soorten constructors in Java:
- Standaard constructor (no-arg constructor)
- Geparametriseerde constructor
Java Default Constructor
Een constructor wordt “Default Constructor” genoemd als er geen is parameter.
Syntaxis van standaardconstructor:
Voorbeeld van standaardconstructor
In dit voorbeeld maken we de no- arg constructor in de klasse Bike. Het wordt aangeroepen op het moment dat het object wordt gemaakt.
Nu testen
Uitvoer:
Bike is created
Regel: Als er geen constructor in een klasse is, maakt de compiler automatisch een standaardconstructor.
V) Wat is het doel van een standaardconstructor?
De standaardconstructor wordt gebruikt om de standaardwaarden aan het object te geven, zoals 0, null, enz., afhankelijk van het type.
Voorbeeld van een standaardconstructor die de standaardwaarden weergeeft
Nu testen
Uitvoer:
0 null0 null
Uitleg: In de bovenstaande klasse ben je niet het maken van een constructor zodat de compiler u een standaardconstructor biedt. Hier worden 0 en null-waarden geleverd door de standaardconstructor.
Java Parameterized Constructor
Een constructor met een specifiek aantal parameters wordt een geparametriseerde constructor genoemd.
Waarom de constructor met parameters gebruiken?
De constructor met parameters wordt gebruikt om verschillende waarden aan verschillende objecten te geven. U kunt echter ook dezelfde waarden opgeven.
Voorbeeld van een constructor met parameters
In dit voorbeeld hebben we de constructor van de klasse Student gemaakt die twee parameters heeft. We kunnen een willekeurig aantal parameters in de constructor hebben.
Nu testen
Uitvoer:
111 Karan222 Aryan
Constructor Overloading in Java
In Java is een constructor net als een methode, maar zonder retourneringstype. Het kan ook worden overbelast zoals Java-methoden.
Overbelasting van constructors in Java is een techniek waarbij meer dan één constructor met verschillende parameterlijsten wordt gebruikt. Ze zijn zo gerangschikt dat elke constructor een andere taak uitvoert. Ze worden door de compiler onderscheiden door het aantal parameters in de lijst en hun typen.
Voorbeeld van overbelasting door constructeurs
Nu testen
Uitvoer:
111 Karan 0222 Aryan 25
Verschil tussen constructor en methode in Java
Er zijn veel verschillen tussen constructors en methoden. Ze worden hieronder gegeven.
Java Constructor | Java-methode |
---|---|
Een constructor wordt gebruikt om de status van een object te initialiseren. | Een methode wordt gebruikt om het gedrag van een object bloot te leggen. |
Een constructor moet geen retourtype hebben. | Een methode moet een retourtype hebben. |
De constructor wordt impliciet aangeroepen. | De methode wordt expliciet aangeroepen. |
De Java-compiler biedt een standaardconstructor als je geen constructor in een klasse hebt. | De methode wordt niet geleverd door de compiler in ieder geval. |
De constructornaam moet hetzelfde zijn als de klassenaam. | De naam van de methode kan al dan niet hetzelfde zijn als de klasse naam. |
Java Copy Constructor
Er is geen kopieerconstructor in Java.We kunnen de waarden echter van het ene object naar het andere kopiëren, zoals de kopieerconstructor in C ++.
Er zijn veel manieren om de waarden van het ene object naar het andere in Java te kopiëren. Dit zijn:
- Door constructor
- Door de waarden van het ene object aan het andere toe te wijzen
- Door de methode clone () van de objectklasse
In dit voorbeeld gaan we de waarden van het ene object naar het andere kopiëren met behulp van de Java-constructor.
Nu testen
Uitvoer:
111 Karan111 Karan
Waarden kopiëren zonder constructor
We kunnen de waarden van het ene object naar het andere kopiëren door de objectwaarden aan een ander object toe te wijzen voorwerp. In dit geval is het niet nodig om de constructor aan te maken.
Nu testen
Uitvoer:
111 Karan111 Karan
V) Retourneert de constructor een waarde?
Ja, het is de huidige klasse-instantie (je kunt het retourtype niet gebruiken, maar het retourneert een waarde).
Kan de constructor andere taken uitvoeren in plaats van initialisatie?
Ja, zoals het maken van objecten, het starten van een thread, het aanroepen van een methode, enz. U kunt elke bewerking in de constructor uitvoeren terwijl u deze uitvoert in de methode.
Is er een constructorklasse in Java?
Ja.
Wat is het doel van de constructorklasse?
Java biedt een constructorklasse die kan worden gebruikt om de interne informatie van een constructor in de klas te krijgen. Het is te vinden in het pakket java.lang.reflect.