Tutoriel JAVA N°8 : Classes, objets et diagramme UML

Entrez dans la peau d’un programmeur Java professionnel. A partir du travail réalisé par un concepteur JAVA, vous avez la responsabilité d’écrire l’application Java. Donnez vie aux Classes : déclarez puis instanciez des objets en utilisant l’opérateur ’new’. Enfin manipulez et mettez au travail ces objets dans le contexte métier imposé. Ici vous allez réaliser une application de demande de Formation impliquant un employé et son manager.

Après avoir acqui la compétence de créer des classes et instancier des Objets, la prochaine étape sera pour vous, de comprendre comment Mettre en oeuvre la notion d’héritage en Java !

ASTUCE —> Soyez informé de la mise à jour de nos tutos ou de la création de nouveaux tutos.

Prérequis

- Savoir Installer le Kit de développement Java (JDK)

Objectifs

- Comprendre votre place dans un projet informatique moderne
- Comprendre le rôle du langage UML pour le programmeur JAVA
- Comprendre un diagramme de classe simple
- Coder une classe JAVA à partir de son diagramme de classe
- Déclarer, instancier et utiliser un objet.

Programme

- Partie 1 : UML : un outil de communication
- Partie 2 : Codage de la classe Employe
- Partie 3 : Manipulation d’objets de type Employe
- Partie 4 : Codage de la classe Manager
- Partie 5 : Codage de la classe DemandeFormation
- Partie 6 : Manipulation d’objets de type Manager et DemandeFormation
- Partie 7 : Correction
- Partie 8 : Refactoring : faîtes évoluer le code

- Conclusion

Durée

- 30 minutes.

Partie 1 : Le rôle d’UML

Dans le cadre de projets professionnels, le travail du programmeur intervient souvent après celui du concepteur ; Ce dernier crée des diagrammes qui faciliteront la programmation de l’application.

Le langage UML permet de :
- Faire communiquer des informaticiens et des non informaticiens (Exemple , une Banque et une équipe d’informaticiens devant réaliser une application bancaire)
- Faire communiquer des informaticiens entre eux (exemple , entre un concepteur et un réalisateur, ou entre 2 programmeurs)

Soit le diagramme UML suivant (appelé diagramme de classes) correspondant au début de modélisation d’une application de gestion de demandes de Formations (Objis !).

PNG - 52.3 ko
tutoriel-argouml-diagramme-tpjava-6

Que vous inspire t’il ? Que comprenez-vous ?

Analyse de la classe Employe

Le ’dessin’ de la classe employe est divisé en 3 parties dinstinctes :
— Le nom de la classe ; Ici Employe
— La liste des propriétés de la classe ; Ici un employé possède un identifiant, un nom et un prénom. Notez le signe - spécifiant que les propriétés sont ’cachées’.
— La liste des méthodes (Savoir-faire) de la classe ; Par exemple la méthode ’demanderFormation()’. Il y a aussi un ensemble de méthodes appelées ’getters’ et ’setters’ permettant respectivement d’obtenir et de mettre à jour la valeur d’une des propriétés.
— Une méthode spéciale apelée le constructeur, et permettant de donner vie à la classe avec des valeurs de propriétés par défaut.

Partie 2 : Codage de la classe Employe du domaine métier

Dans cette partie vous allez utiliser Eclipse pour coder la classe Employe.

- Faites un ’click droit’ sur le répertoire ’src’ pour créer un nouveau package

tuto-8-img-1

- Saisissez le nom du package ’domaine’ dans la zone de texte ’Name’ et cliquez sur le bouton FINISH

tuto-8-img-2

- Sur le package ’domaine’ ainsi créé , nous allons ajouter une nouvelle classe Employe . Cliquez droit sur le package domaine et sélectionnez New->Class

tuto-8-img-3

- Sur cet écran , saisissez le nom de la classe Employe , puis cliquez sur le bouton FINISH

tuto-8-img-4

- La classe Employe est créée dans le package ’domaine’

tuto-8-img-5

- Ajoutez les attributs ’privés’ nom , prenom et id de la classe Employe

tuto-8-img-6

- Faites un click droit à l’intérieur de la classe et sélectionnez ’Source\Generate Getters and Setters’ pour générer les getters et setters de la classe

tuto-8-img-7

- Vous pouvez sélectionner tous les attributs en cliquant sur le bouton ’SELECT ALL’ en haut à droite . Puis cliquez sur le bouton ’OK’

tuto-8-img-8

- Les getters et les setters sont générés comme ci-dessous

tuto-8-img-9

- Ajouter quelques commentaires ainsi que la méthode demanderFormation()

PNG - 23.9 ko
tutoriel-java-classes-objets-9

Le codage de la classe Employe est terminé....ou presque !

QUESTION : Que manque t’il à la classe employé ?

Ajout d’un constructeur

tuto-8-img-11

- Faites un click droit à l’intérier de la classe puis ’Source\Generate Constructor using Fields’

tuto-8-img-12

- Sur l’écran , cliquez sur le bouton ’SELECT ALL’ pour sélectionner tous les attributs , puis cliquez sur ’OK’ en bas .

tuto-8-img-13

- Le constructeur de la classe Employe est généré .

tuto-8-img-14

Le codage de la classe Employe est terminé.

A VOUS DE JOUER : créer de la même manière, à partir du diagramme UML, les classes Manager et DemandeFormation.

Partie 3 : Manipulation d’objet Employe

Dans cette partie vous allez créer le programme principal de l’application.

Dans ce programme vous allez successivement :

1) Déclarer 1 variable de type Employe.

2) Instancier un objet de type Employe

3) Utiliser cet objet (le mettre au travail) en sollicitant une des méthodes de cet objet

- Créez le package ’lanceur’ .

- Ajoutez la vue eclipse ’Taches’ ainsi que les lignes de code

- Dans le package ’lanceur’, créez une classe principale ’LanceurGestionFormations’

- Préparez les 3 phases ci-dessus dans votre codage de la méthode main().

Cliquez sur ’Window\Show View\Tasks’

tuto-8-img-16

- Ajoutez les trois commentaires ci-dessous

tuto-8-img-17

- Le résultat sur la vue ’Taches ’

tuto-8-img-18

Déclaration

tuto-8-img-19

- Eclipse nous signale qu’il y’a erreur , en passant la souris au dessus de la croix rouge indiquant l’erreur , nous voyons les détails de l’erreur

tuto-8-img-20

- En double cliquant sur Employe , la bulle apparaît et nous propose quelques solutions pour fixer l’erreur
- Nous allons choisir la première “import ’Employe’ (domaine)” pour importer le package qui comporte notre classe Employe , ici , “domaine”

tuto-8-img-21

- Eclipse génére le code qui permet d’importer le package “domaine”

tuto-8-img-22

- Instanciation

tuto-8-img-23

- On instancie avec des valeurs pour “nom” , “prenom” et “id ”

tuto-8-img-24

Utilisation

- Dés que vous saisissez le nom de l’objet employe1 , suivi de “.” Eclipse sort la liste des méthodes disponibles . Ici Séléctionnez la méthode demanderFormation .

tuto-8-img-25

- Saissisez “Spring” comme paramétre de la méthode demanderFormation .

tuto-8-img-26

- Lancement de l’application , en sélectionnant la méthode main() , puis cliquer sur le bouton “run”.

tuto-8-img-27

- Le Résultat s’affiche sur la vue “console”

tuto-8-img-28

Codage de la classe Manager

A VOUS DE JOUER : Codez la classe Manager à partir du Diagramme de Classe, et en se basant sur le savoir-faire acquis lors du codage de la classe Employe.

Remarque 1 : la classes Manager se trouve aussi dans le package domaine.

Remarque 2 : la méthode validerConges() ressemble à ceci

PNG - 7.7 ko

- Expliquez

Codage de la classe DemandeFormation

A VOUS DE JOUER : Codez la classe DemandeFormation à partir du Diagramme de Classe, et en se basant sur le savoir-faire acquis lors du codage de la classe Employe.

Remarque 1 : la classes DemandeFormation se trouve aussi dans le package domaine.

Remarque 2 : il est demandé d’ajouter deux nouvelles propriétés qui sont
— La date de début de la formation (propriété ’dateDebut’)
— La date de fin de la formation (propriété ’dateFin’)

Le constructeur de DemandeFormation ressemble à ceci :

PNG - 8.5 ko

- Expliquez

Manipulation d’objets de type Employe, Manager et DemandeFormation

A VOUS DE JOUER : Déclarez, instanciez et manipulez des objets de type Manager et DemandeFormation

PNG - 153.1 ko
tutoriel-classes-objet-java-1

Partie 7 : correction

Téléchargez , dézippez et importez le projet Eclipse suivant dans votre Workspace (Fichier—> import —> Général —> Existing project into WorksPace) :

Zip - 8.4 ko
GestionFormationsV1-Classes-Objets

Partie 8 - Refactoring : faite évoluer le code !

Evolution N°1 : nom des packages & architecture en couche

- Modifiez le nom des packages existants et créez de nouveaux packages (pour l’instant vide) de façon à mettre en évidence :
— > le nom de la société qui a créé ce code (objis)
— > le nom du projet (GestionFormations)
— > une architecture en couche (présentation, domaine, service, dao)

Evolution N°2 : ajout de paramètres à l’application

- Faites en sorte que l’application accepte 3 paramètres : le thème, la date de début et la date de fin de demande formation du premier employé.

Evolution N°3 : interaction avec l’utilisateur

- Faites en sorte que l’application demande à l’utilisateur d’entrer les informations suivantes : Nom et prénom et congés des employés et du manager.

Conclusion

Dans ce tutoriel vous avez programmé des classes java à partir d’un travail de conception réalisé par un concepteur Java. Vous avez instancié des objets à partir des classes. Puis vous avez mis ces objets au travail.

Vous avez compris le cycle : Déclaration - instanciation - utilisation d’un Objet.

Dans le tutoriel suivant ’tutoriel Java N°9’ , vous allez Mettre en oeuvre la notion d’héritage en Java’.

Nouveaux tutos objis.com

Soyez informé des nouveaux tutos ou des mises à jour de tutos objis.com .

Votre avis nous intéresse

Vous avez remarqué une erreur ? Vous avez une recommandation pour améliorer ce tuto ? Vous souhaitez nous encourager à partager notre savoir-faire technique et pédagogique ?

Donner votre avis sur ce Tuto objis.com