Constructors in Java

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.

  1. Constructornaam moet hetzelfde zijn als de klassenaam
  2. Een constructor mag geen expliciet retourneringstype hebben
  3. 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:

  1. Standaard constructor (no-arg constructor)
  2. 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.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *