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
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 !).
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
Saisissez le nom du package ‘domaine’ dans la zone de texte ‘Name’ et cliquez sur le bouton FINISH
Sur le package ‘domaine’ ainsi créé , nous allons ajouter une nouvelle classe Employe . Cliquez droit sur le package domaine et sélectionnez New->Class
Sur cet écran , saisissez le nom de la classe Employe , puis cliquez sur le bouton FINISH
La classe Employe est créée dans le package ‘domaine’
Ajoutez les attributs ‘privés’ nom , prenom et id de la classe Employe
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
Vous pouvez sélectionner tous les attributs en cliquant sur le bouton ‘SELECT ALL’ en haut à droite . Puis cliquez sur le bouton ‘OK’
Les getters et les setters sont générés comme ci-dessous
Ajouter quelques commentaires ainsi que la méthode demanderFormation()
Le codage de la classe Employe est terminé….ou presque !
QUESTION : Que manque t’il à la classe employé ?
Ajout d’un constructeur
Faites un click droit à l’intérier de la classe puis ‘SourceGenerate Constructor using Fields’
Sur l’écran , cliquez sur le bouton ‘SELECT ALL’ pour sélectionner tous les attributs , puis cliquez sur ‘OK’ en bas .
Le constructeur de la classe Employe est généré .
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’
Ajoutez les trois commentaires ci-dessous
Le résultat sur la vue ‘Taches ‘
Déclaration
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
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”
Eclipse génére le code qui permet d’importer le package “domaine”
Instanciation
On instancie avec des valeurs pour “nom” , “prenom” et “id ”
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 .
Saissisez “Spring” comme paramétre de la méthode demanderFormation .
Lancement de l’application , en sélectionnant la méthode main() , puis cliquer sur le bouton “run”.
Le Résultat s’affiche sur la vue “console”
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
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 :
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
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 !
A 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 !