Qu'est-ce que la composition en Java ? Avec des exemples

Publié: 2023-01-27

Table des matières

Bases de l'association en Java :

L'association peut être définie en Java comme une interconnexion entre deux classes individuelles utilisant leurs objets distincts. Les types de relations gérées par l'association Java sont :

  • One-to-one : il n'existe qu'une seule classe dérivée pour chaque classe parent.
  • One-to-many : une classe parent unique peut avoir plus d'une classe enfant.
  • Many-to-one : une seule classe enfant peut être associée à plusieurs superclasses.
  • Plusieurs à plusieurs : un certain nombre de classes parentes peuvent être associées à une seule classe enfant et un plus grand nombre de classes enfants peuvent être associées à une seule classe parente.

Une fois la relation établie, les classes dérivées communiquent avec les classes de base respectives pour réutiliser leurs caractéristiques et propriétés. Il existe deux types d'association en Java. Ce sont l'agrégation et la composition.

L'agrégation en Java est un processus plus généralisé par rapport à la composition. Ces formulaires sont basés sur le type de relation pris en charge entre les classes.

Introduction à la composition en Java :

Une technique de conception en Java qui implémente une relation Has-A est appelée composition. Le processus d'héritage est utilisé pour réutiliser le code. La composition en Java peut être réalisée à l'aide d'une variable d'instance faisant référence à d'autres objets. Si un objet constitue un autre objet de telle manière que l'objet constituant ne peut exister sans la survie de l'objet principal, le type de relation est appelé la composition. Pour être plus précis, la composition est un aspect qui décrit la référence entre deux ou plusieurs classes à l'aide de variables d'instance. Ici, l'instance doit être créée avant d'utiliser les variables instantanées. Prenons l'exemple d'une Bibliothèque pour bien comprendre le concept de « composition ».

Il existe de nombreux livres dans une bibliothèque. Chaque livre a des auteurs et des titres distincts. La bibliothèque devrait également avoir une liste de référence des livres qu'elle contient. La bibliothèque possède également plusieurs livres liés au même sujet ou à des sujets divers. Ici, la bibliothèque correspond à la classe principale et les livres peuvent être liés à la classe dérivée. L'association ou la relation entre les livres et la bibliothèque peut être considérée comme une composition. En effet, la classe "Livres" dépend entièrement de la bibliothèque de classe. Par exemple, si la bibliothèque est détruite, tous les livres qu'elle contient sont également détruits.

Consultez nos cours de technologie gratuits pour vous démarquer de la concurrence.

Explorez nos cours populaires de génie logiciel

Master of Science en informatique de LJMU & IIITB Programme de certificat de cybersécurité Caltech CTME
Bootcamp de développement de la pile complète Programme PG dans Blockchain
Programme exécutif PG en développement Full Stack
Voir tous nos cours ci-dessous
Cours de génie logiciel

Une description détaillée de Composition en Java :

La composition est une forme d'association Java. Les deux classes communicantes sont fortement liées, la classe dérivée étant complètement dépendante de la classe mère. L'existence indépendante de la classe dérivée n'est pas possible dans ce cas. Par exemple, un moteur sans voiture ne peut pas exister indépendamment. Ce type d'association est très restreint par rapport à l'agrégation. La composition est une technique de conception et ne doit pas être confondue avec une fonctionnalité Java.

La composition peut être utilisée pour modéliser des objets qui ont d'autres objets comme membres constituants. Il existe la relation has-a entre ces objets. Dans ce type d'association, un objet contient l'autre objet. Par conséquent, l'objet constituant est complètement dépendant de l'objet principal pour sa survie. Ainsi, si l'objet contenant est détruit, l'objet constituant est également affecté. Par conséquent, la relation de composition peut être considérée comme une partie de la relation globale dans laquelle l'existence de la partie sans le tout n'est pas possible. En d'autres termes, la partie est automatiquement supprimée lors de la suppression du tout. Cela implique que le tout a une relation solide avec la partie.

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.

Compétences en développement de logiciels à la demande

Cours JavaScript Cours Java de base Cours de Structures de Données
Cours Node.js Cours SQL Cours de développement full stack
Cours NFT Cours DevOps Cours Big Data
Cours React.js Cours de cybersécurité Cours d'informatique en nuage
Cours de conception de bases de données Cours Python Cours de crypto-monnaie

En quoi l'héritage est-il différent de la composition en Java ?

Il est important de noter que la fonctionnalité d'héritage peut également être réalisée à l'aide de la composition en Java. Bien que l'héritage et la composition soient utilisés pour offrir la possibilité de réutiliser le code par la classe associée, il existe des différences subtiles entre les deux. La principale différence entre les deux processus est que la composition est une technique de conception, contrairement à l'héritage qui est une fonctionnalité Java. Les autres différences majeures entre les deux sont répertoriées dans le tableau ci-dessous.

Paramètre

Composition

Héritage

Basique Il intègre une relation HAS-A. Il intègre une relation IS-A.
Réutilisation du code Le code peut être réutilisé dans plusieurs classes. La réutilisation du code n'est possible que dans une classe car une seule interface peut être étendue par une classe.
Portée Cela peut être facilement accompli au moment de l'exécution. Les fonctionnalités sont mieux réalisées au moment de la compilation.
Final Il facilite la réutilisation du code même à partir des classes finales. Le code des classes finales ne peut pas être réutilisé en cas d'héritage.
Méthodes Les méthodes ne sont pas exposées. Les interfaces publiques sont utilisées pour leur interaction. L'héritage expose à la fois les méthodes protégées et publiques de la classe de base.

Différences entre agrégation et composition :

Agrégation

Composition

C'est un type d'association Java faible. C'est un type d'association plus fort par rapport à l'agrégation.
La classe dérivée est indépendante de la classe de base. Par conséquent, la classe dérivée peut continuer à exister même si la classe de base est détruite. La classe dérivée est complètement dépendante de la classe de base. Par conséquent, la sous-classe ne peut pas exister si la superclasse est détruite.
La classe enfant a sa propre durée de vie. La durée de vie de la classe enfant dépend de la classe parent.
La classe parent utilise la classe enfant dans ce type d'association. Par conséquent, la classe dérivée n'appartient pas à la classe de base. Dans ce type d'association, la classe parent possède la classe enfant. Par conséquent, la classe parent est propriétaire de la classe enfant.
Elle constitue une relation HAS-A. La classe dérivée a une classe de base. Il constitue une partie de la relation. La classe dérivée fait partie de la classe de base.
Le mot-clé final n'est pas utilisé pour indiquer l'agrégation. Le mot-clé final peut être utilisé pour désigner la composition.
Exemple : La voiture a un chauffeur. Exemple : Le moteur fait partie de la voiture.

Lisez nos articles populaires liés au développement de logiciels

Comment implémenter l'abstraction de données en Java ? Qu'est-ce que la classe interne en Java ? Identificateurs Java : définition, syntaxe et exemples
Comprendre l'encapsulation dans OOPS avec des exemples Arguments de ligne de commande en C expliqués Top 10 des fonctionnalités et caractéristiques du cloud computing en 2022
Polymorphisme en Java : concepts, types, caractéristiques et exemples Packages en Java et comment les utiliser ? Tutoriel Git pour les débutants : Apprenez Git à partir de zéro

Avantages de l'utilisation de Composition en Java :

  • La composition facilite la réutilisation du code Java.
  • Bien que les héritages multiples ne soient pas pris en charge par Java, le vide peut être comblé par cette technique de conception.
  • Avec l'utilisation de la composition, une classe peut être testée pour la capacité d'une meilleure manière.
  • Le code est rendu plus flexible avec l'utilisation de la composition. L'implémentation de la classe composée peut être remplacée par une version améliorée.
  • Les membres de l'objet peuvent être modifiés au moment de l'exécution pour le changement dynamique du comportement du programme à l'aide d'une relation de composition.

Limitations de la composition en Java :

L'utilisation de la composition en Java présente quelques inconvénients. Le principal inconvénient de la composition d'objets est qu'il est plus difficile pour l'utilisateur de comprendre le comportement du système implémenté simplement en réfléchissant au code source. Un système qui utilise la composition d'objets est de nature hautement dynamique. Ainsi, comprendre le fonctionnement des systèmes qui utilisent la composition d'objets nécessite une analyse plus approfondie du code source et l'exécution du code pour observer le fonctionnement et la coopération entre les objets individuels dans le code source.

Si vous souhaitez en savoir plus sur Java, le développement de logiciels full-stack, consultez le programme Executive PG de upGrad & IIIT-B en développement de logiciels - Spécialisation en développement Full Stack, conçu pour les professionnels en activité et offrant plus de 500 heures de formation rigoureuse. , 9+ projets et affectations, statut d'ancien de l'IIIT-B, projets de synthèse pratiques et aide à l'emploi avec les meilleures entreprises.

Vous souhaitez partager cet article?

Préparez-vous à une carrière d'avenir

Postulez maintenant pour une maîtrise en génie logiciel