Qu'est-ce que la surcharge de constructeur en Java

Publié: 2022-11-16

La demande d'applications Web est en hausse à l'échelle mondiale. Java est devenu le choix préféré des développeurs ayant besoin d'une programmation à grande échelle. La popularité de Java repose sur ses fonctionnalités dynamiques, son interface conviviale et sa grande compatibilité avec les principaux systèmes d'exploitation. Le langage a une API riche. Un autre avantage de Java est qu'il offre un support communautaire robuste et d'excellents services de documentation. N'oubliez pas la suite d'outils de développement offerte par Java.

Table des matières

Qu'entendez-vous par constructeurs en Java ?

Les constructeurs en Java sont principalement utilisés pour initialiser l'état de l'objet. Semblables aux méthodes, les constructeurs consistent en un groupe d'instructions ou d'instructions qui doivent être exécutées lors de la création d'un objet.

Quel est le besoin d'un constructeur en Java ?

Pour expliquer la nécessité d'un constricteur en Java, prenons l'exemple d'une boîte. Considérez la boîte comme une classe. La boîte aura différentes variables comme la longueur, la largeur et la hauteur. Lorsqu'il est temps de créer un objet, la classe de boîte n'aura pas de valeurs définies pour ses dimensions. Lorsque de nouveaux objets sont créés, les constructeurs attribuent des valeurs aux variables de classe de deux manières - par divers paramètres passés par le programmeur ou en utilisant des constructeurs Java par défaut.

Qu'entendez-vous par surcharge de constructeur en Java ?

Dans la surcharge de constructeur , plusieurs constructeurs de la même classe sont définis. Cependant, chaque constructeur doit avoir une signature unique ou des paramètres d'entrée spécifiques. Le programme de surcharge de constructeur en Java permet à une seule classe d'avoir plusieurs constructeurs, qui diffèrent par la liste des arguments passés. Chaque constructeur surchargé est utilisé pour effectuer diverses tâches de classe.

Le compilateur Java identifie les constructeurs surchargés en fonction des types de paramètres, des listes de paramètres et des quantités de paramètres d'entrée. Il est bien évident que les constructeurs surchargés ont des signatures différentes. La signature du constructeur contiendra ses types de paramètres et son nom. Parfois, des problèmes d'ambiguïté surviennent lorsque deux constructeurs de classe ont une signature identique. Dans une telle situation, le compilateur ne peut pas faire la différence entre les deux. Par conséquent, il affiche une notification d'erreur. Parfois, il existe des constructeurs surchargés avec des signatures différentes. Dans ce cas, le compilateur vérifie que le conducteur est invoqué en fonction du nombre de paramètres d'entrée des différents objets.

Exemple de surcharge de constructeur

Dans cet exemple, nous cherchons à créer deux objets de la classe StudentData . Un objet utilise un constructeur par défaut, tandis que l'autre utilise un constructeur paramétré. Les deux constructeurs ont des codes d'initialisation distincts. Il est possible de créer des constructeurs de n'importe quel nombre avec des codes d'initialisation différents-2 à des fins différentes-2.

StudentData.java

classe StudentData

{

ID d' étudiant privé ;

chaîne privée stuName ;

STAGE INTERIEUR PRIVÉ;

DonnéesÉtudiant ()

{

// Constructeur par défaut

IDtu = 100 ;

stuName = "Nouvel étudiant" ;

âge = 18 ;

}

StudentData ( int num1, String str, int num2)

{

// Constructeur paramétré

IDtu = num1 ;

stuName = str;

stuAge = num2 ;

}

//Méthodes getter et setter

public int getStuID() {

retourner stuID ;

}

public void setStuID( int stuID) {

this .stuID = stuID;

}

chaîne publique getStuName() {

retourne stuName ;

}

public void setStuName( String stuName) {

this .stuName = stuName;

}

public int getStuAge() {

retour stuAge;

}

public void setStuAge( int stuAge) {

this .stuAge = stuAge;

}

public static void main( String args[])

{

//Cette création d'objet appellerait le constructeur par défaut

StudentData monobj = new StudentData ();

Système . out .println( "Le nom de l'étudiant est : " +myobj.getStuName());

Système . out .println( "L'âge de l'étudiant est : " +myobj.getStuAge());

Système . out .println( "L'ID étudiant est : " +myobj.getStuID());

/*Cette création d'objet appellerait le paramètre

* constructeur StudentData(int, String, int)*/

StudentData myobj2 = new StudentData ( 555 , "Chaitanya" , 25 );

Système . out .println( "Le nom de l'étudiant est : " +myobj2.getStuName());

Système . out .println( "L'âge de l'étudiant est : " +myobj2.getStuAge());

Système . out .println( "L'ID étudiant est : " +myobj2.getStuID());

}

}

Production:

Le nom de l' étudiant est : nouvel étudiant

L' âge de l' étudiant est : 18 ans

L' identifiant étudiant est : 100

Le nom de l' étudiant est : Chaitanya

L' âge de l' étudiant est : 25

La carte d'étudiant est : 555

Référence : https://beginnersbook.com/2013/05/constructor-overloading/

Apprenez des cours de développement de logiciels en ligne dans les meilleures universités du monde. Gagnez des programmes Executive PG, des programmes de certificat avancés ou des programmes de maîtrise pour accélérer votre carrière.

Comprendre la fonction de this () dans la surcharge du constructeur

classe publique OverloadingExample2

{

privé int rollNum ;

SurchargeExemple2 ()

{

rollNum = 100 ;

}

OverloadingExample2 ( int rnum)

{

ceci ();

/*this() est utilisé pour appeler la valeur par défaut

* constructeur du constructeur paramétré.

* Cela devrait toujours être la première déclaration

* à l'intérieur du corps du constructeur.

*/

rollNum = rollNum+ rnum ;

}

public int getRollNum() {

return rollNum ;

}

public void setRollNum( int rollNum) {

ce .rollNum = rollNum ;

}

public static void main( String args[])

{

OverloadingExample2 obj = new OverloadingExample2 ( 12 );

Système . out .println(obj.getRollNum());

}

}

Production

112

Référence : https://beginnersbook.com/2013/05/constructor-overloading/
Webinaire de développement logiciel exclusif d'upGrad pour vous -
Webinaire de développement logiciel exclusif d'upGrad pour vous -

Entreprise SAAS - Qu'est-ce qui est si différent ?

Dans le programme mentionné ci-dessus, le constructeur paramétré est appelé lors de la création de l'objet. Le constructeur par défaut est appelé lorsque this () est placé dans le constructeur paramétré. La variable rollNum est initialisée.

Un autre exemple:

Lorsque vous n'implémentez aucun constructeur, le compilateur Java insère un constructeur par défaut dans le code lors de la compilation. Cependant, le compilateur ne le fait pas lorsque vous implémentez un constructeur. Voir l'exemple ici pour mieux comprendre ce point :

Démo de classe publique

{

privé int rollNum ;

// Nous ne définissons pas ici un constructeur sans argument

Démo ( int rnum)

{

rollNum = rollNum+ rnum ;

}

//Méthodes getter et setter

public static void main( String args[])

{

//Cette instruction invoquerait le constructeur sans argument

Démo obj = nouvelle Démo ();

}

}

Production:

Exception dans le thread "main" java.lang. Erreur : Compilation non résolue

Problème : Le constructeur Demo () n'est pas défini

Cours et articles populaires sur le génie logiciel

Programmes populaires
Programme exécutif PG en développement de logiciels - IIIT B Programme de certificat Blockchain - PURDUE Programme de certificat de cybersécurité - PURDUE MSC en informatique - IIIT B
Autres articles populaires
Salaire d'ingénieur cloud aux États-Unis 2021-22 Salaire d'AWS Solution Architect aux États-Unis Salaire d'un développeur backend aux États-Unis Salaire de développeur front-end aux États-Unis
Salaire de développeur web aux Etats-Unis Questions d'entretien de Scrum Master en 2022 Comment démarrer une carrière dans la cybersécurité en 2022 ? Options de carrière aux États-Unis pour les étudiants en génie

Expliquer l'utilisation de la surcharge du constructeur

Avec la surcharge de construction , il devient possible d'activer la création d'une classe spécifique par un objet de différentes manières. Par conséquent, ce concept est utilisé dans divers programmes Java en fonction des besoins du programmeur. Lors de l'utilisation de la surcharge de constructeur en Java , il est possible d'initialiser les objets avec différents types de données.

Par exemple, considérons qu'il existe un objet avec trois variables d'instance de classe. Vous devez affecter une valeur particulière à la seconde variable d'instance et des valeurs par défaut aux autres variables. Pour ce faire, déclarez plusieurs constructeurs selon différentes signatures dans la classe constituante.

Avantages de la surcharge des constructeurs en Java

Vous trouverez ci-dessous les principaux avantages de l'utilisation de la surcharge du constructeur lors de l'écriture de programmes Java :

  • Vous pouvez initialiser les instances de classe de différentes manières en utilisant la surcharge du constructeur.
  • Avec la surcharge du constructeur, vous pouvez réaliser un polymorphisme statique.
  • Chaque constructeur surchargé effectue différentes tâches à des fins spécifiées.
  • La surcharge des constructeurs en Java facilite le processus de définition de plusieurs constructeurs dans une seule classe avec des signatures spécifiques uniques.

Conclusion

Cet article traite du programme de surcharge de constructeur en Java et de ses avantages. Il existe plusieurs constructeurs d'une classe avec des signatures différentes lorsqu'il existe des constructeurs surchargés. Pour compiler, chaque constructeur doit avoir des listes de paramètres différentes. Une liste de paramètres comprendra les types et les ordres d'arguments. Il est impossible d'avoir deux constructeurs avec les mêmes listes de paramètres dans une classe.

Programme de certificat de développement Full Stack d'upGrad pour les développeurs de logiciels et les professionnels de la technologie

Que vous soyez nouveau dans l'industrie du développement de logiciels ou que vous cherchiez à vous perfectionner, vous devez acquérir de nouvelles compétences et technologies grâce à des cours pertinents. Le développement full-stack est l'un de ces cours.

upGrad propose un programme exécutif en développement de logiciels aux candidats intéressés, exclusivement conçu pour les professionnels de l'informatique, les développeurs de logiciels, les professionnels du support technique, les analystes et les jeunes diplômés qui souhaitent s'aventurer dans le domaine du développement de logiciels.

Vous serez hautement qualifié en JavaScript et apprendrez les microservices et MERN Stack avec ce cours. En plus d'apprendre près de 10 langages et outils de programmation, vous apprendrez également les différents outils largement utilisés sur Facebook, Walmart, Netflix et LinkedIn. Le programme offre une expérience d'apprentissage immersive sur Cloud Labs.

Les étudiants qui suivent ce programme de certificat auront la possibilité de concevoir, développer, tester et déployer des applications Web dans le cadre du projet Capstone. Les apprenants bénéficient de séances de mentorat de carrière individuelles avec des mentors de premier plan de l'industrie avec ces avantages. À la fin du cours, vous pouvez travailler en tant que développeur full-stack, développeur d'interface utilisateur, développeur front-end et back-end.

Postulez maintenant pour vous inscrire au cours!

A quoi sert un constructeur en Java ?

Un constructeur en Java est utilisé pour initialiser des objets et créer un objet d'une classe. Vous pouvez également définir des valeurs initiales pour les fonctions et attributs d'objet. Un constructeur est comme un bloc de codes, similaire à une méthode ou à un processus.

La surcharge du constructeur a-t-elle lieu pour la classe statique ?

Fait intéressant, les conducteurs statiques ne peuvent pas être surchargés ou hérités. Un conducteur statique est invoqué automatiquement. L'utilisateur n'a aucun contrôle lorsque le constructeur statique est exécuté dans le programme.

Y a-t-il une différence entre la surcharge du constructeur et la surcharge de la méthode ?

Une méthode est utilisée pour exécuter certaines fonctions de classe, alors qu'un constructeur initialise un objet. Lorsque vous créez un objet, les constructeurs sont invoqués implicitement. Cependant, les méthodes doivent être appelées explicitement par l'utilisateur.