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

Publié: 2022-11-19

La polyvalence du langage de programmation Java permet la réutilisation du code tout en réduisant la duplicité entre les classes. Java facilite la réutilisation du code en établissant des relations entre les classes, et ces relations sont de deux types : héritage et association. Alors que l'héritage nous permet d'implémenter une relation is-a et de créer une nouvelle classe à partir d'une classe existante, l'association ou la relation has-a garantit la réutilisation du code.

La relation has-a est divisée en deux catégories : agrégation et composition en Java . Cet article explorera le concept de composition en Java et vous aidera à comprendre ses principes fondamentaux avec des exemples.

Table des matières

Un aperçu des relations en Java

Les relations en Java font référence aux différentes manières dont les classes sont liées. En gros, il existe deux types de relations en Java :

  • Est-une relation
  • A une relation

Composition en Java

La source

Est-une relation (Héritage)

La fonctionnalité d'héritage de Java nous permet d'implémenter des relations is-a. Dans ce cas, une classe hérite d'une autre classe. Par exemple, si une classe « Fleur » hérite d'une autre classe, « Lily », nous pouvons dire que la classe « Lily » a une relation est-un avec « Flower ». Cela implique également que Lily est une fleur.

Exemple : Lily "est une" fleur, l'ordinateur "est un" appareil, etc.

A une relation (Association)

Une relation has-a signifie qu'une classe utilise l'instance d'une autre classe, et une telle relation en Java est appelée association. Par exemple, si une classe P contient la référence d'une autre classe Q, cela implique que P peut accéder à toutes les propriétés de la classe Q.

Exemple : l'ordinateur "a un" processeur, l'abeille "a un" dard, etc.

Une association en Java est une relation entre deux classes discrètes utilisant leurs objets. La relation peut être des types suivants :

  • One-to-many : un objet s'associe à plusieurs objets.
  • Un à un : un objet s'associe à un seul objet.
  • Plusieurs à plusieurs : de nombreux objets s'associent à plusieurs autres objets.
  • Plusieurs-à-un : plusieurs objets sont associés à un seul objet.

L'association est de deux types : l'agrégation et la composition.

Composition en Java

La composition en Java est une technique de conception pour implémenter des relations has-a entre les classes. Dans cette association, une classe contient une autre classe. De plus, la classe contenue repose sur la classe contenante et ne peut pas exister indépendamment. En d'autres termes, une classe inclut une autre classe avec des fonctionnalités interdépendantes.

Par exemple, une classe "Voiture" contient les classes "Moteur" et "Batterie". Ainsi, « Voiture » ​​est dans une relation avec « Moteur » et « Batterie », et ces deux derniers ne peuvent pas exister indépendamment sans « Voiture ».

Prenons un autre exemple concret. Un corps humain a des reins et les organes ne peuvent pas exister sans un corps humain. Ainsi, si nous pensons que "Humain" est une classe ayant une relation avec la classe "Reins", c'est une composition dans l'exemple de Java puisque les reins ne peuvent pas exister indépendamment sans un corps humain.

Webinaire de développement logiciel exclusif d'upGrad pour vous -

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

Implémentation de la composition dans l'exemple Java

Considérons maintenant le programme suivant démontrant le concept de composition en Java . Nous allons le décomposer en étapes pour une meilleure compréhension.

Étape 1 : Dans la première étape, nous allons créer une classe 'Car' et déclarer et définir des méthodes et des membres de données.

voiture de classe

{

// déclaration des membres de données et des méthodes

couleur de chaîne privée ;

vitesse int privée ;

public void carFeatures()

{

System.out.println(“Car Color= “+color + ” Maximum Speed= ” + speed);

}

public void setColor (couleur de la chaîne)

{

this.color = couleur;

}

public void setspeed (vitesse int)

{

this.speed = vitesse ;

}

}

Étape 2 : Ensuite, nous allons créer une classe « Fiat » qui étend la classe « Voiture » ​​ci-dessus. La classe 'Fiat' utilise la méthode start() de l'objet de classe FiatEngine via la composition, ce qui implique que la classe 'Fiat' 'a-un' FiatEngine. Fiat est une voiture, elle s'étend donc de la classe "Voiture".

la classe Fiat étend la voiture

{

// hérite de toutes les propriétés de la classe Car

public void setStart()

{

FiatEngine e = new FiatEngine();

e.start();

}

}

Étape 3 : Dans l'étape suivante du programme de composition Java, nous allons créer une classe FiatEngine à travers laquelle nous utilisons l'objet de classe dans la classe ci-dessus "Fiat".

classe FiatMoteur

{

public void start()

{

System.out.println("Le moteur a démarré.");

}

public void stop()

{

System.out.println("Le moteur s'est arrêté.");

}

}

Étape 4 : Dans la dernière étape du programme, nous allons créer une classe CompositionExample, créer un objet de la classe 'Fiat' et l'initialiser.

classe CompositionExemple

{

public static void main(String[] args)

{

Fiat f = nouvelle Fiat();

f.setColor("Noir");

f.setspeed(175);

f.carFeatures();

h.setStart();

}

}

Production:

Couleur de la voiture = Noir Vitesse maximale = 175

Le moteur a démarré.

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.

Agrégation et composition en Java

L'agrégation et la composition en Java sont les deux types de relations has-a, les deux étant différentes en termes de dépendance entre les classes. Dans l'agrégation, les classes de conteneur et de référence ont une existence indépendante, tandis qu'une classe de référence de composition cesse d'exister sans classe de conteneur. Ainsi, une classe de référence dépend de sa classe de conteneur dans la composition.

Voici un exemple concret pour comprendre la différence entre agrégation et composition en Java . Une voiture comporte diverses pièces comme un moteur, des freins, une batterie, des phares, un lecteur de musique, etc. Bien que la voiture puisse fonctionner sans lecteur de musique, elle ne peut pas fonctionner sans pièces essentielles comme un moteur ou une batterie. Par conséquent, nous pouvons dire que la voiture et le lecteur de musique ont une relation d'agrégation tandis que le moteur et la voiture ont une relation de composition.

Quels sont les avantages de l'utilisation de la composition en Java ?

Maintenant que vous avez une compréhension fondamentale du concept de composition en Java, voici un aperçu des avantages de cette technique :

  • La composition en Java facilite la réutilisation du code.
  • La composition en Java nous permet de contrôler la visibilité d'autres objets pour les classes clientes et de réutiliser ce dont nous avons besoin.
  • Bien que Java ne supporte pas les héritages multiples, nous pouvons le contourner en utilisant la composition.
  • La composition en Java est flexible et nous permet de modifier les objets membres au moment de l'exécution pour modifier le comportement du programme.
  • La composition Java offre une meilleure testabilité des classes, une fonctionnalité particulièrement utile dans le développement piloté par les tests.
  • Une conception basée sur la composition a moins de classes.

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

Conclusion

La composition en Java est une excellente technique si la relation entre les classes est has-a et que vous cherchez à réutiliser le code. En résumé, voici quelques points clés dont vous devez vous souvenir à propos de la composition en Java :

  • La composition en Java représente une relation has-a.
  • Dans la composition, une classe contient une autre classe, et la classe contenue repose sur la classe contenante et ne peut pas exister indépendamment.
  • Les deux entités d'une association de composition dépendent l'une de l'autre.
  • Nous pouvons réaliser une composition en Java via une variable d'instance qui fait référence à d'autres objets.

Améliorez votre carrière avec le programme Executive PG d'upGrad en développement de logiciels

Le développement de logiciels est l'une des options de carrière les plus lucratives pour les jeunes professionnels. Si vous êtes déjà dans l'industrie ou si vous cherchez à vous lancer, vous devez vous inscrire au programme Executive PG d'upGrad en développement de logiciels . Le programme vous enseigne les compétences recherchées et les dix langages et outils de codage les plus rémunérateurs . Vous pouvez choisir parmi quatre spécialisations, notamment le développement Blockchain, le développement Full Stack, DevOps et le développement Cloud Backend.

En plus d'apprendre les langages de programmation les plus payants , vous pouvez travailler sur plus de 30 études de cas et projets. Des professeurs de classe mondiale suivent des conférences en direct et des sessions en ligne pour le cours. Le soutien aux étudiants est disponible 24 heures sur 24.

Postulez maintenant pour être admis au cours au plus tôt!

Qu'est-ce que la composition et l'héritage en Java ?

La composition et l'héritage en Java sont deux techniques de programmation permettant d'établir des relations entre des objets et des classes. La composition représente une relation has-a avec une classe contenant une autre classe. D'autre part, l'héritage présente une relation is-a avec une classe acquérant les propriétés et le comportement d'une autre classe.

A quoi sert la composition en Java ?

La composition en Java permet la réutilisation du code et offre une meilleure testabilité d'une classe. Bien que Java ne prenne pas en charge les héritages multiples, la composition fournit un moyen de le faire.

La composition est-elle une POO ?

La composition est un concept fondamental de la programmation orientée objet. Il décrit une relation has-a où une classe fait référence à un ou plusieurs objets d'autres classes via des variables d'instance.