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

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

java-9.jpg Avec Objis, spécialiste Java depuis 2005, 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.

Auteur

 Douglas MBIANDOU. Président Objis . Concepteur formation ‘Nouveautés Java 8 et 9’

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 !).

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 ‘SourceGenerate 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()

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 ‘SourceGenerate 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 ‘WindowShow ViewTasks’

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 validerFormations() ressemble à ceci

tutoriel-classes-objet-java-2.png

 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 :
tutoriel-classes-objet-java-3.png

 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

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):

GestionFormations-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é.

On montrera 2 façons de donner des paramètres (arguments) à un programme :

— > APPROCHE N°1 : en ligne de commande : java GestionFormations argument1 argument2 argument3

— > APPROCHE N°2 : via Eclipse (Click droit sur projet / Run-as / Run Configurations / Arguments)

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 des employés et du manager.

— > On utilisera à cet effet les méthodes de la classe Scanner fournie par le JDK

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

Professionnels : maîtrisez les nouveautés Java 8 et 9 !

modules-java9.jpgA travers notre nouvelle formation Nouveautés Java 8 et 9 (durée 4 jours) conçue par l’auteur de ce tutoriel, découvrez par la pratique le nouveau système de Modules Java 9 (Encapsulation forte + Intercafes + Dépendances explicites) ainsi que les spécificités de Java 8 (Streams, Lambda, Optional…). Maîtrisez également la méthodologie de migration de votre code vers Java 9. Un sérieux atout pour votre employabilité et l’évolution de votre carrière professionnelle !. Contactez-nous dès maintenant !

2018-01-27T16:35:32+01:00

Contactez nous

241 rue DUGUESCLIN, 69003 Lyon

Web : Objis : spécialiste formation Java