logo

Constructeurs op Java

  1. Soorten constructeurs
    1. Standaardconstructeur
    2. Geparametriseerde constructor
  2. Overbelasting van de constructeur
  3. Geeft de constructor enige waarde terug?
  4. De waarden van het ene object naar het andere kopiëren
  5. Voert de constructor andere taken uit in plaats van de initialisatie

In Java , een constructor is een codeblok dat lijkt op de methode. Het wordt aangeroepen wanneer een exemplaar van de klas is gecreëerd. 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 er minstens één constructor aangeroepen.

Het roept een standaardconstructor aan als er geen constructor beschikbaar is in de klasse. In dat geval biedt de Java-compiler standaard een standaardconstructor.

Er zijn twee soorten constructors in Java: no-arg-constructor en geparametriseerde constructor.

Opmerking: Het wordt constructor genoemd 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 komt omdat de Java-compiler een standaardconstructor maakt als uw klasse er geen heeft.

Regels voor het maken van een Java-constructor

Er zijn twee regels gedefinieerd voor de constructor.

scanner in java
  1. De constructornaam moet hetzelfde zijn als de klassenaam
  2. Een Constructor mag geen expliciet retourtype hebben
  3. Een Java-constructor kan niet abstract, statisch, definitief en gesynchroniseerd zijn

Opmerking: we kunnen gebruiken toegangsmodificatoren terwijl u een constructor declareert. Het bestuurt de creatie van objecten. Met andere woorden, we kunnen een privé-, beschermde, openbare of standaardconstructor in Java hebben.

Soorten Java-constructors

Er zijn twee soorten constructors in Java:

  1. Standaardconstructor (no-arg-constructor)
  2. Geparametriseerde constructor
Java-constructeurs

Java-standaardconstructor

Een constructor wordt 'Default Constructor' genoemd als deze geen parameter heeft.

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.
 //Java Program to create and call a default constructor class Bike1{ //creating a default constructor Bike1(){System.out.println('Bike is created');} //main method public static void main(String args[]){ //calling a default constructor Bike1 b=new Bike1(); } } 
Test het nu

Uitgang:

 Bike is created 

Regel: Als er geen constructor in een klasse aanwezig is, maakt de compiler automatisch een standaardconstructor.

Java-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

 //Let us see another example of default constructor //which displays the default values class Student3{ int id; String name; //method to display the value of id and name void display(){System.out.println(id+' '+name);} public static void main(String args[]){ //creating objects Student3 s1=new Student3(); Student3 s2=new Student3(); //displaying values of the object s1.display(); s2.display(); } } 
Test het nu

Uitgang:

 0 null 0 null 

Uitleg: In de bovenstaande klasse maakt u geen enkele constructor, dus de compiler biedt u een standaardconstructor. Hier worden 0- en null-waarden geleverd door de standaardconstructor.


Java-geparametriseerde constructor

Een constructor die een specifiek aantal parameters heeft, wordt een geparametriseerde constructor genoemd.

Waarom de geparametriseerde constructor gebruiken?

De geparametriseerde constructor wordt gebruikt om verschillende waarden aan verschillende objecten te geven. U kunt echter ook dezelfde waarden opgeven.

Voorbeeld van een geparametriseerde constructor

In dit voorbeeld hebben we de constructor van de Student-klasse gemaakt met twee parameters. We kunnen een willekeurig aantal parameters in de constructor hebben.

 //Java Program to demonstrate the use of the parameterized constructor. class Student4{ int id; String name; //creating a parameterized constructor Student4(int i,String n){ id = i; name = n; } //method to display the values void display(){System.out.println(id+' '+name);} public static void main(String args[]){ //creating objects and passing values Student4 s1 = new Student4(111,'Karan'); Student4 s2 = new Student4(222,'Aryan'); //calling method to display the values of object s1.display(); s2.display(); } } 
Test het nu

Uitgang:

 111 Karan 222 Aryan 

Constructor-overbelasting in Java

In Java is een constructor net een methode, maar zonder retourtype. Het kan ook overbelast raken, net als Java-methoden.

Constructeur overbelasting op Java is een techniek om meer dan één constructor met verschillende parameterlijsten te hebben. Ze zijn zo gerangschikt dat elke constructor een andere taak uitvoert. Ze worden door de compiler onderscheiden op basis van het aantal parameters in de lijst en hun typen.

Voorbeeld van overbelasting van de constructor

 //Java program to overload constructors class Student5{ int id; String name; int age; //creating two arg constructor Student5(int i,String n){ id = i; name = n; } //creating three arg constructor Student5(int i,String n,int a){ id = i; name = n; age=a; } void display(){System.out.println(id+' '+name+' '+age);} public static void main(String args[]){ Student5 s1 = new Student5(111,'Karan'); Student5 s2 = new Student5(222,'Aryan',25); s1.display(); s2.display(); } } 
Test het nu

Uitgang:

 111 Karan 0 222 Aryan 25 

Verschil tussen constructor en methode in Java

Er zijn veel verschillen tussen constructors en methoden. Ze worden hieronder gegeven.

Java-constructeurJava-methode
Een constructor wordt gebruikt om de toestand van een object te initialiseren.Er wordt een methode gebruikt om het gedrag van een object bloot te leggen.
Een constructor mag 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 er geen constructor in een klasse aanwezig is.De methode wordt in ieder geval niet door de compiler geleverd.
De constructornaam moet hetzelfde zijn als de klassenaam.De naam van de methode kan al dan niet hetzelfde zijn als de klassenaam.

Java-constructeurs versus methoden

Java-kopieconstructor

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 te kopiëren in Java. Zij zijn:

doe while-lus in Java
  • Door constructeur
  • Door de waarden van het ene object aan het andere toe te wijzen
  • Via de clone()-methode 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.

 //Java program to initialize the values from one object to another object. class Student6{ int id; String name; //constructor to initialize integer and string Student6(int i,String n){ id = i; name = n; } //constructor to initialize another object Student6(Student6 s){ id = s.id; name =s.name; } void display(){System.out.println(id+' '+name);} public static void main(String args[]){ Student6 s1 = new Student6(111,'Karan'); Student6 s2 = new Student6(s1); s1.display(); s2.display(); } } 
Test het nu

Uitgang:

 111 Karan 111 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. In dit geval is het niet nodig om de constructor te maken.

 class Student7{ int id; String name; Student7(int i,String n){ id = i; name = n; } Student7(){} void display(){System.out.println(id+' '+name);} public static void main(String args[]){ Student7 s1 = new Student7(111,'Karan'); Student7 s2 = new Student7(); s2.id=s1.id; s2.name=s1.name; s1.display(); s2.display(); } } 
Test het nu

Uitgang:

 111 Karan 111 Karan 

V) Geeft de constructor een waarde terug?

Ja, het is de huidige klasse-instantie (u 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 zoals u in de methode uitvoert.


Is er een Constructor-klasse in Java?

Ja.


Wat is het doel van de Constructor-klasse?

Java biedt een Constructor-klasse die kan worden gebruikt om de interne informatie van een constructor in de klasse op te halen. Het is te vinden in het pakket java.lang.reflect.