Constructeurs en Java

En Java, un constructeur est un bloc de codes similaire à la méthode. Il est appelé lorsquune instance de la classe est créée. Au moment de lappel du constructeur, la mémoire de lobjet est allouée dans la mémoire.

Cest un type spécial de méthode qui est utilisé pour initialiser lobjet.

Chaque fois quun objet est créé en utilisant le mot-clé new (), au moins un constructeur est appelé.

Il appelle un constructeur par défaut sil ny a pas de constructeur disponible dans la classe. Dans ce cas, le compilateur Java fournit un constructeur par défaut.

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

Remarque: Il est appelé constructeur car il construit les valeurs au moment de la création de lobjet. Il nest pas nécessaire décrire un constructeur pour une classe. Cest parce que le compilateur java crée un constructeur par défaut si votre classe nen a pas.

Règles de création de constructeur Java

Deux règles sont définies pour le constructeur.

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

Remarque: Nous pouvons utiliser des modificateurs daccès lors de la déclaration dun constructeur. Il contrôle la création de lobjet. En dautres 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é

Constructeur par défaut Java

Un constructeur est appelé « Constructeur par défaut » quand il nen a pas paramètre.

Syntaxe du constructeur par défaut:

Exemple de constructeur par défaut

Dans cet exemple, nous créons le no- constructeur arg dans la classe Bike. Il sera invoqué au moment de la création de lobjet.

Tester maintenant

Résultat:

Bike is created

Règle: Sil ny a pas de constructeur dans une classe, le compilateur crée automatiquement un constructeur par défaut.

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

Le constructeur par défaut est utilisé pour fournir les valeurs par défaut à lobjet comme 0, null, etc., en fonction du type.

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

Testez-le maintenant

Résultat:

0 null0 null

Explication: Dans la classe ci-dessus, vous nêtes pas créer nimporte quel constructeur afin que le compilateur vous fournisse 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 a un nombre spécifique de paramètres est appelé un 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 nimporte quel nombre de paramètres dans le constructeur.

Tester maintenant

Sortie:

111 Karan222 Aryan

Surcharge de 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.

La surcharge de constructeurs en Java est une technique consistant à avoir plus dun constructeur avec différentes listes de paramètres. Ils sont organisés de manière à ce que chaque constructeur exécute 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

Testez-le maintenant

Résultat:

111 Karan 0222 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 Java Méthode Java
Un constructeur est utilisé pour initialiser létat dun objet. Une méthode est utilisée pour exposer le comportement dun objet.
Un constructeur doit nont pas de type de retour. Une méthode doit avoir un type de retour.
Le constructeur est appelé implicitement. La méthode est invoquée explicitement.
Le compilateur Java fournit un constructeur par défaut si vous navez aucun constructeur dans une classe. La méthode nest pas fournie par le compilateur dans tous les cas.
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 identique à la classe nom.

Java Copy Constructor

Il ny a pas de constructeur de copie en Java.Cependant, nous pouvons copier les valeurs dun objet à un autre comme le constructeur de copie en C ++.

Il existe de nombreuses façons de copier les valeurs dun objet dans un autre en Java. Ce sont:

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

Dans cet exemple, nous allons copier les valeurs dun objet dans un autre en utilisant le constructeur Java.

Tester maintenant

Sortie:

111 Karan111 Karan

Copie de valeurs sans constructeur

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

Tester maintenant

Résultat:

111 Karan111 Karan

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

Oui, cest linstance de classe actuelle (vous ne pouvez pas utiliser le type de retour mais il renvoie une valeur).

Le constructeur peut-il effectuer dautres tâches au lieu de linitialisation?

Oui, comme la création dobjet, le démarrage dun thread, lappel dune méthode, etc. Vous pouvez effectuer nimporte quelle opération dans le constructeur comme vous le faites dans la méthode.

Existe-t-il une classe Constructor en Java?

Oui.

À quoi sert la classe Constructor?

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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *