logo

Qu’est-ce que le chaînage de constructeurs en Java ?

En Java, chaînage de constructeur est une séquence d'invocation constructeurs lors de l'initialisation d'un objet. Il est utilisé lorsque l'on souhaite invoquer plusieurs constructeurs, l'un après l'autre en utilisant uniquement une instance. Dans cette section, nous discuterons chaînage de constructeurs en Java en détail avec des exemples appropriés. Jetons un coup d'œil rapide à qu'est-ce qu'un constructeur en Java.

Constructeur

Dans Java , un constructeur est identique à une méthode mais la seule différence est que le constructeur a le même nom que le nom de la classe. Il est utilisé pour créer une instance de la classe. Il est appelé automatiquement lorsque l'on crée un objet de la classe. Il n'a pas de type de retour. N'oubliez pas qu'un constructeur ne peut pas être abstrait , final , synchronisé , et statique . Nous ne pouvons pas remplacer un constructeur.

Il existe deux types de constructeur en Java :

  • Constructeur par défaut (également connu sous le nom de constructeur sans argument)
  • Constructeur paramétré

Chaînage de constructeur

Dans la chaîne de constructeurs, un constructeur est appelé depuis un autre constructeur de la même classe, ce processus est appelé chaînage des constructeurs. Cela se produit par héritage. Lorsque nous créons une instance d'une classe dérivée, tous les constructeurs de la classe héritée (classe de base) sont d'abord invoqués, après quoi le constructeur de la classe appelante (classe dérivée) est invoqué.

Nous pouvons réaliser le chaînage des constructeurs de deux manières :

divisé par chaîne java
    Au sein d'une même classe :Si les constructeurs appartiennent à la même classe, on utilise ce De la classe de base :Si le constructeur appartient à des classes différentes (classes parent et enfant), on utilise le super mot-clé pour appeler le constructeur à partir de la classe de base.

N'oubliez pas que changer l'ordre du constructeur n'affecte pas la sortie.

Qu'est-ce que le chaînage de constructeurs en Java

Le besoin du chaînage des constructeurs

Supposons qu'il y ait cinq tâches à effectuer. Il existe deux manières d'effectuer ces tâches : soit implémenter toutes les tâches dans un seul constructeur, soit créer des tâches distinctes dans un seul constructeur.

En utilisant le mécanisme de chaînage des constructeurs, nous pouvons implémenter plusieurs tâches dans un seul constructeur. Ainsi, chaque fois que nous sommes confrontés à de tels types de problèmes, nous devons utiliser le chaînage de constructeurs. Nous pouvons rendre le programme plus lisible et compréhensible en utilisant le chaînage de constructeurs.

Règles de chaînage des constructeurs

  • Une expression qui utilise ce Le mot-clé doit être la première ligne du constructeur.
  • Commanden'a pas d'importance dans le chaînage des constructeurs.
  • Il doit exister au moins un constructeur qui n'utilise pas ce

Constructeur Appelant un autre Constructeur

L'appel du constructeur peut se faire de deux manières :

    En utilisant le mot-clé this() :Il est utilisé lorsque nous voulons appeler le constructeur de classe actuel au sein de la même classe.En utilisant le mot-clé super() :Il est utilisé lorsque nous voulons appeler le constructeur de superclasse à partir de la classe de base.

Remarque : Dans le même bloc constructeur, nous ne pouvons pas utiliser this() et super() simultanément.

Comprenons ces deux concepts à travers des programmes Java.

police latex

Exemples de chaînage de constructeurs

Appel du constructeur de classe actuel

Nous utilisons ce() mot-clé si nous voulons appeler le constructeur de classe actuel dans la même classe. L'utilisation de this() est obligatoire car JVM ne le mettez jamais automatiquement comme le super() mot-clé. Notez que this() doit être la première ligne du constructeur. Il doit exister au moins un constructeur sans mot-clé this() .

Syntaxe:

 this(); or this(parameters list); 

Par exemple:

 this(); this('Javatpoint'); 

Créons un programme Java et appelons le constructeur de classe actuel.

ConstructeurChain.java

 public class ConstructorChain { //default constructor ConstructorChain() { this('Javatpoint'); System.out.println('Default constructor called.'); } //parameterized constructor ConstructorChain(String str) { System.out.println('Parameterized constructor called'); } //main method public static void main(String args[]) { //initializes the instance of example class ConstructorChain cc = new ConstructorChain(); } } 

Sortir:

formater une date en java
Qu'est-ce que le chaînage de constructeurs en Java

Dans l'exemple ci-dessus, nous avons créé une instance de la classe sans passer aucun paramètre. Il appelle d'abord le constructeur par défaut et le constructeur par défaut redirige l'appel vers celui paramétré à cause de this(). Les instructions à l'intérieur du constructeur paramétré sont exécutées et reviennent au constructeur par défaut. Après cela, le reste des instructions du constructeur par défaut est exécuté et l'objet est initialisé avec succès. Voici la séquence d'appel du constructeur :

 ConstructorChain cc = new ConstructorChain(); -> ConstructorChain() -> ConstructorChain(String str) -> System.out.println() -> ConstructorChain() -> System.out.println() 

Appel du constructeur de super classe

Parfois, nous devons appeler le constructeur de superclasse (classe parent) à partir de la classe enfant (classe dérivée). Dans de tels cas, nous utilisons le mot-clé super() dans le constructeur de classe dérivée. Il est facultatif d'écrire super() car JVM le met automatiquement. Il faut toujours l'écrire sur la première ligne. Nous obtenons une erreur de syntaxe si nous essayons d'appeler un constructeur de superclasse dans la classe enfant.

Syntaxe:

 super(); or super(Parameter List); 

super(): Il appelle le constructeur sans argument ou par défaut de la superclasse.

propriétés acides

super(paramètres): Il invoque le constructeur paramétré de superclasse.

N'oubliez pas que le constructeur de la superclasse ne peut pas être hérité dans la sous-classe. Il peut être appelé depuis le constructeur de sous-classe en utilisant le mot-clé super.

Créons un programme Java et implémentons le chaînage de constructeurs dans une classe héritée.

ConstructeurChaining.java

 //parent class or base class class Demo { //base class default constructor Demo() { this(80, 90); System.out.println('Base class default constructor called'); } //base class parameterized constructor Demo(int x, int y) { System.out.println('Base class parameterized constructor called'); } } //derived class or child class class Prototype extends Demo { //derived class default constructor Prototype() { this('Java', 'Python'); System.out.println('Derived class default constructor called'); } //derived class parameterized constructor Prototype(String str1, String str2) { super(); System.out.println('Derived class parameterized constructor called'); } } public class ConstructorChaining { //main method public static void main(String args[]) { //initializes the instance of example class Prototype my_example = new Prototype(); } } 

Sortir:

Qu'est-ce que le chaînage de constructeurs en Java