Découvrir Eclipse

Gérer les packages

Testez gratuitement nos 1300 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Les packages sont importants en Java et également sous Eclipse. Il ne faudra pas confondre le package et le source folder, une invention pure d'Eclipse.

Transcription

Dans cette vidéo nous allons nous intéresser à l'organisation d'un projet Java en Package. Donc, nous sommes sous Éclipse, nous allons créer un nouveau projet, Java Project que nous allons appeler « exercice9 », qui est donc un projet tout à fait normal du point de vue des paramètres. Nous avons donc un Source Folder « src » dans lequel nous allons créer une classe. Petite remarque : Éclipse prend soin de ce que nous faisons, puisque dès que je crée la classe principale ici, avec son Main, il me place la classe dans un Package. Donc, je vais venir ici créer une classe dans le Package. Alors, imaginons que le but de cette application soit de déclencher du code sur un jeu de dés. Je vais donc manipuler un Gobelet, donc que je vais créer de cette façon-là. Et sur ce Gobelet, je vais récupérer un résultat. Donc, lorsque je lance le Gobelet, « gobelet lancer » (gob.lancer() ;) et je fais apparaître dans la console le résultat, « (''Résultat du jeu'') » et je fais apparaître le résultat du Gobelet. Là, évidemment, il s'agit d'un petit jeu pour les gens qui sont adeptes de jeu, évidemment, je suis devant quelque chose de très simple. Je vais créer la classe Gobelet. Alors, bien entendu, je peux créer la classe Gobelet directement à côté de la classe Principale, de cette façon-là. Cette classe Gobelet, en fait, bien sûr ne contient pas de Main, c'est une classe que je génère par défaut, et donc cette classe Gobelet a une méthode « lancer » que je vais écrire comme ça : « public int lancer », et nous verrons plus tard ce que nous allons retourner. Pour l'instant, nous retournons zéro. Donc, j'ai décrit une classe Gobelet que j'utilise dans la classe Principale. La grosse différence entre la classe Gobelet et la classe Principale, c'est que d'un côté je suis devant une classe qui offre un service, on va dire, quasiment métier, puisqu'il s'agit en fait de réaliser un jeu de dés, avec un « lancer » de dés, et d'autre côté, je suis sur une classe contenant un Main qui est une classe totalement liée à la notion de console. Donc, c'est typiquement une classe applicative, une classe très technique. Donc, pour séparer le deux mondes, je vais normalement créer deux Packages, dans lesquels je vais pouvoir ranger mes classes. Je vais donc dans « exercice9 » ici venir créer un nouveau Package. Donc, je sélection le Package « exericie9» et je viens faire New, Package. Donc, pour créer le Package qui va contenir les objets métiers, en quelque sorte, donc, le Gobelet de mon application, je crée un Package qui va s'appeler « exercice9.metier ». Alors, l'organisation en Package qui est essentiellement une organisation hiérarchique, est assez mal représentée par Éclipse, mais nous allons voir que nous allons essayer d'améliorer les choses. Donc, la classe Gobelet, je la prends, je viens la glisser dans « exercice9.metier ». Bien entendu, Éclipse me signale qu'il va mettre à jour les références vers Gobelet, et voilà le résultat. Donc, dans « exercice9.metier » j'ai bien la classe « Gobelet.java », la classe « Principale.java » étant restée dans le Package « exercice9 ». Comme vous avez sans doute envie de symétrie, vous voulez un Package qui sera à côté de métier, dans le Package « exercice9 ». Donc, je vais venir encore une fois créer un Package spécialement pour la partie IHM, la partie Représentation et la partie Applicative. Donc, je vais appeler ça « exercice9.app » ; et je vais prendre ma classe Principale, je vais la glisser dans « exercice9.app ». J'ai la même boîte que tout à l'heure, il me dit qu'il va mettre à jour les références à la classe Principale. Donc, je me retrouve dans « src » à avoir deux noms de Packages, « exercice9.app », « exercice9.metier ». On aurait pu s'attendre à une structure arborescente au niveau du Source Folder, avec « exercice9 » contenant deux Packages : un qui s'appellerait « app », l'autre qui s'appellerait « metier ». Vous remarquerez que ce n'est pas tout à fait le cas, bon, c'est le parti qu’Éclipse a pris pour la représentation des Packages, qui est une représentation dans le mode de répertoire, mais qui est là légèrement différente. Alors, le gros intérêt d'avoir séparé les deux, évidemment, c'est d'avoir un Package métier qui va contenir les Gobelets, les « De », etc, et un Package « app » qui contient uniquement les classes qui correspondent donc à la partie plus technique. Le « lancer » d'un Gobelet maintenant. Eh bien, il s'agit tout simplement de lancer deux « Des ». Alors, c'est moi qui l'invente, bien sûr, c'est une spécification, mais imaginons que j'ai à lancer deux « Des », eh bien, je vais représenter sous forme de deux attributs dans la classe Gobelet deux « Des », « De d1 » , « De d2 ». Bien entendu, cette classe « De » n'existe pas dans la réalité, elle n'existe que dans mon projet ici, elle n'existe pas dans le fragment que c'est à moi de la créer. Donc, « d1 = New D », ce sera la construction du « De d1 », et « d2 = New D », je crée deuxième objet « De » qui sera référencé par « d2 ». Bien entendu, là, pour l'instant, le compilateur n'accepte pas mon code, puisqu'il me dit que cette classe « De » n'existe pas. Dans la classe Principale j'ai utilisé la classe Gobelet directement, alors que je ne suis pas dans le Package du Gobelet ; c'est pour ça qu'il m'a fallu importer la classe Gobelet, spécifier donc l'import, et cet import n'est possible que dans la mesure où la classe Gobelet est réellement publique. De même que j'ai pu créer le Gobelet, déclencher le constructeur de Gobelet et j'ai pu lancer le Gobelet. Ça suppose que le constructeur de Gobelet, comme la méthode de lancé, sont effectivement des membres publics de la classe Gobelet. Maintenant j'ai besoin de créer la classe « De » . Donc, cette classe « De », je vais évidemment la créer dans le Package du métier. Je viens donc sur mon Package « exercice9.metier », New, Class, et je crée ma classe « De ». Mais ce [inaudible] la classe « De », elle est utilisée à partir du Gobelet, qui est une classe qui fait déjà partie du même Package, contrairement à l'usage du Gobelet que j'avais fait dans la classe Principale. Donc, cette classe « De » ne devrait pas être publique. Elle devrait avoir une visibilité de Package, c'est-à-dire avoir une visibilité limitée au Package. Comme vous le voyez ici, il n'y a pas de mot clé public. Donc, cet arborescence de Package va me permettre de ranger les classes de façon logique et cohérente, mais en plus, de régler les accès entre les classes à travers ces visibilités de classe, mais aussi à travers les visibilités des membres que je vais passer dans le « De ». Par exemple, dans la classe « De » je vais dans une zone privée déclarer une valeur. Cette valeur dans la classe « De », c'est une information valeur qui va rester privée dans l'objet « De », et par contre, il est prévu que le Gobelet puisse créer un objet « De » ici et puis lancer l'objet « De ». Donc, je vais préparer une méthode « lancer » qui retourne une valeur « int lancer». Et voilà, ma méthode « lancer », donc, qui va globalement exécuter le code suivant, « valeur = », je caste en « int » du résultat de Math point random fois six plus un [valeur = (int) (Math.random()*6+1 ], et un Return de valeur. J'ai ici donc une méthode « lancer » qui existe dans la classe « De » qui n'a pas de préfixe de visibilité. Cette méthode « lancer » n'est pas privée, Ella a simplement une visibilité de Package, ce qui permet à la classe Gobelet de coder cet appel sur « d1 » et « d2 ». « d1 » et « d2 » sont des « Des ». « Lancer » est accessible effectivement, car la visibilité, elle est une visibilité Finally, « Gobelet » et « De » sont dans le même Package. L'attribut valeur, par contre, serait inaccessible de la partie Gobelet. Ici, le constructeur par défaut sur « De », je n'ai rien écrit, et par défaut, donc, le constructeur est généré par le compilateur. Alors, je peux vérifier comment l'application fonctionne, je viens sur « Principal.java », Run As Java Application, j'ai effectivement un Résultat du jeu de 10. Voilà comment donc sera organisé le projet Java sous forme de sources que l'on place dans des fichiers qui sont eux-mêmes rangées dans des répertoires. Ces répertoires apparaissent sous la forme de Package dans l'arborescence du projet Java sous Éclipse.

Découvrir Eclipse

Voyez comment réaliser vos projets de développement Java avec Eclipse. Facilitez-vous la vie avec la prise en charge des tests, les composants additionnels, etc.

2h12 (28 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Eclipse Eclipse 4.6
Spécial abonnés
Date de parution :26 juil. 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !