logo

Constructeurs en Java

  1. Types de constructeurs
    1. Constructeur par défaut
    2. Constructeur paramétré
  2. Surcharge du constructeur
  3. Le constructeur renvoie-t-il une valeur ?
  4. Copier les valeurs d'un objet dans un autre
  5. Le constructeur effectue-t-il d'autres tâches au lieu de l'initialisation

Dans Java , un constructeur est un bloc de codes similaire à la méthode. Il est appelé lorsqu'une instance de classe est créé. Au moment de l'appel du constructeur, la mémoire de l'objet est allouée dans la mémoire.

Il s'agit d'un type spécial de méthode utilisée pour initialiser l'objet.

Chaque fois qu'un objet est créé à l'aide du mot-clé new(), au moins un constructeur est appelé.

Il appelle un constructeur par défaut s'il n'y a aucun constructeur disponible dans la classe. Dans ce cas, le compilateur Java fournit par défaut un constructeur par défaut.

Il existe deux types de constructeurs en Java : le constructeur sans argument et le constructeur paramétré.

Note: On l'appelle constructeur car il construit les valeurs au moment de la création de l'objet. Il n’est pas nécessaire d’écrire un constructeur pour une classe. C'est parce que le compilateur Java crée un constructeur par défaut si votre classe n'en a pas.

Règles de création d'un constructeur Java

Il existe deux règles définies pour le constructeur.

chaîne.format en java
  1. Le nom du constructeur doit être le même que son nom de classe
  2. Un constructeur ne doit pas avoir de type de retour explicite
  3. Un constructeur Java ne peut pas être abstrait, statique, final et synchronisé

Remarque : Nous pouvons utiliser modificateurs d'accès en déclarant un constructeur. Il contrôle la création d'objets. En d’autres termes, nous pouvons avoir un constructeur privé, protégé, public ou par défaut en Java.

Types de constructeurs Java

Il existe deux types de constructeurs en Java :

  1. Constructeur par défaut (constructeur sans argument)
  2. Constructeur paramétré
Constructeurs Java

Constructeur Java par défaut

Un constructeur est appelé « Constructeur par défaut » lorsqu'il n'a aucun paramètre.

Syntaxe du constructeur par défaut :

 (){} 

Exemple de constructeur par défaut

Dans cet exemple, nous créons le constructeur sans argument dans la classe Bike. Il sera invoqué au moment de la création de l'objet.
 //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(); } } 
Testez-le maintenant

Sortir:

 Bike is created 

Règle : S'il n'y a pas de constructeur dans une classe, le compilateur crée automatiquement un constructeur par défaut.

Constructeur Java par défaut

Q) Quel est le but d'un constructeur par défaut ?

Le constructeur par défaut est utilisé pour fournir les valeurs par défaut à l'objet comme 0, null, etc., selon le type.

Exemple de constructeur par défaut qui affiche les valeurs par défaut

 //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(); } } 
Testez-le maintenant

Sortir:

 0 null 0 null 

Explication: Dans la classe ci-dessus, vous ne créez aucun constructeur, le compilateur vous fournit donc un constructeur par défaut. Ici, les valeurs 0 et nulles sont fournies par le constructeur par défaut.


Constructeur paramétré Java

Un constructeur qui possède un nombre spécifique de paramètres est appelé constructeur paramétré.

Pourquoi utiliser le constructeur paramétré ?

Le constructeur paramétré est utilisé pour fournir différentes valeurs à des objets distincts. Cependant, vous pouvez également fournir les mêmes valeurs.

Exemple de constructeur paramétré

Dans cet exemple, nous avons créé le constructeur de la classe Student qui a deux paramètres. Nous pouvons avoir n'importe quel nombre de paramètres dans le constructeur.

 //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(); } } 
Testez-le maintenant

Sortir:

 111 Karan 222 Aryan 

Surcharge du constructeur en Java

En Java, un constructeur est comme une méthode mais sans type de retour. Il peut également être surchargé comme les méthodes Java.

Constructeur surcharge en Java est une technique consistant à avoir plus d'un constructeur avec différentes listes de paramètres. Ils sont disposés de manière à ce que chaque constructeur effectue une tâche différente. Ils sont différenciés par le compilateur par le nombre de paramètres dans la liste et leurs types.

Exemple de surcharge de constructeur

 //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(); } } 
Testez-le maintenant

Sortir:

 111 Karan 0 222 Aryan 25 

Différence entre constructeur et méthode en Java

Il existe de nombreuses différences entre les constructeurs et les méthodes. Ils sont donnés ci-dessous.

Constructeur JavaMéthode Java
Un constructeur est utilisé pour initialiser l'état d'un objet.Une méthode est utilisée pour exposer le comportement d’un objet.
Un constructeur ne doit pas avoir de type de retour.Une méthode doit avoir un type de retour.
Le constructeur est invoqué implicitement.La méthode est invoquée explicitement.
Le compilateur Java fournit un constructeur par défaut si vous n'avez aucun constructeur dans une classe.La méthode n’est en aucun cas fournie par le compilateur.
Le nom du constructeur doit être le même que le nom de la classe.Le nom de la méthode peut ou non être le même que le nom de la classe.

Constructeurs Java et méthodes

Constructeur de copie Java

Il n'y a pas de constructeur de copie en Java. Cependant, nous pouvons copier les valeurs d'un objet à un autre comme un constructeur de copie en C++.

Il existe de nombreuses façons de copier les valeurs d'un objet dans un autre en Java. Ils sont:

  • Par constructeur
  • En attribuant les valeurs d'un objet à un autre
  • Par la méthode clone() de la classe Object

Dans cet exemple, nous allons copier les valeurs d'un objet dans un autre à l'aide du constructeur Java.

 //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(); } } 
Testez-le maintenant

Sortir:

 111 Karan 111 Karan 

Copie de valeurs sans constructeur

Nous pouvons copier les valeurs d'un objet dans un autre en attribuant les valeurs des objets à un autre objet. Dans ce cas, il n’est pas nécessaire de créer le constructeur.

 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(); } } 
Testez-le maintenant

Sortir:

 111 Karan 111 Karan 

Q) Le constructeur renvoie-t-il une valeur ?

Oui, il s'agit de l'instance de classe actuelle (vous ne pouvez pas utiliser le type de retour mais elle renvoie une valeur).


Le constructeur peut-il effectuer d’autres tâches au lieu de l’initialisation ?

Oui, comme la création d'objets, le démarrage d'un thread, l'appel d'une méthode, etc. Vous pouvez effectuer n'importe quelle opération dans le constructeur pendant que vous effectuez dans la méthode.


Existe-t-il une classe Constructor en Java ?

Oui.

quel est le numéro de l'alphabet

Quel est le but de la classe Constructeur ?

Java fournit une classe Constructor qui peut être utilisée pour obtenir les informations internes d'un constructeur dans la classe. Il se trouve dans le package java.lang.reflect.