Cours de Java, module 220 pour l'IPI
La classe EntrepriseTest contient des tests permettant de corriger automatiquement les exercices.
Pour les exécuter, clic droit sur la classe EntrepriseTest :
- IntelliJ : => Run EntrepriseTest
- Eclipse : => Run As => Junit Test
SALAIRE_BASEde typeDoubleet de valeur 1480.27NB_CONGES_BASEde typeIntegeret de valeur 25INDICE_MANAGERde typeDoubleet de valeur 1.3PRIME_MANAGER_PAR_TECHNICIENde typeDoubleet de valeur 250PRIME_ANCIENNETEde typeDoubleet de valeur 100
002 : Déclarer au niveau de la classe Entreprise, une méthode primeAnnuelleBase, publique et statique calculant la prime de base pour tous les employés de l'entreprise de la manière suivante :
Utiliser la classe LocalDate (de joda time, attention aux imports) pour obtenir l'année courante.
Prime = 50% de l'année en cours. Ex : 2017 : 2017 / 2 = 1008.5
nom:Stringprenom:Stringmatricule:StringdateEmbauche:LocalDatesalaire:Double
102 : Définir un constructeur par défaut dans la classe Employe, puis un constructeur avec l'ensemble des arguments précédemment créés, dans le même ordre puis décommenter la ligne 20 de EmployeTest
103 : Déclarer et développer la méthode getNombreAnneeAnciennete calculant le nombre d'année d'ancienneté d'un employé
Faire en sorte qu'elle ne puisse être redéfinie dans d'éventuelles sous-classes. Un employé embauché cette année a une ancienneté de 0
104 : Modifier le setter de dateEmbauche pour lever une Exception avec le message "La date d'embauche ne peut être postérieure à la date courante" lorsque la date d'embauche est postérieure à la date courante
105 : Développer une méthode getNbConges retournant la constante de classe NB_CONGES_BASE de la classe Entreprise
106 : Redéfinir la méthode toString (héritée d'Object) pour afficher un employé de la manière suivante :
"Employe{nom='nom', prenom='prenom', matricule='12345', dateEmbauche=1970-01-01, salaire=500.0}"
107 : Redéfinir la méthode equals (héritée d'Object) testant l'égalité sur l'ensemble des attributs de la classe Employe
108 : Redéfinir la méthode hashCode (héritée d'Object) en utilisant Objects.hash(...) et en respectant l'ordre nom, prenom, matricule, dateEmbauche, salaire
109 : Coder la méthode augmenterSalaire prenant en paramètre un pourcentage d'augmentation de type Double et augmentant l'attribut salaire du pourcentage passé en paramètre :
Ex : un salaire de 500.0, avec une augmentation de 0.50, cela donne un salaire de 750.0
110 : Déclarer dans la classe Employe une méthode getPrimeAnnuelle retournant la prime annuelle de base définie dans la classe Entreprise
202 : Modifier la classe Commercial pour ajouter un attribut caAnnuel de type Double avec son getter et son setter
203 : Modifier la méthode getPrimeAnnuelle précédemment générée par l'IDE pour que la prime soit égale à 5% du caAnnuel, avec un minimum de 500 € même en cas de chiffre d'affaire nul(l).
Faire en sorte que la prime soit toujours arrondi à l'euro supérieur. Voir la classe Math
204 : Créer un constructeur pour la classe Commercial qui initialise tous les attributs hérités de la classe Employe en faisant appel au constructeur d'Employe et qui initialise également l'attribut caAnnuel
205 : Redéfinir la méthode equals pour permettre de tester l'égalité entre deux instances de la classe Commercial.
Appeler la méthode equals de la classe Employe
- un attribut
performancede typeInteger - une méthode
performanceEgaleprenant unIntegeren paramètre qui renvoietruesi la performance du commercial est égale à celle passée en paramètre,falsesinon
207 : Créer un enum note dans un fichier à part avec les valeurs INSUFFISANT, PASSABLE, BIEN, TRES_BIEN et créer une méthode equivalenceNote (sans utiliser de if) dans Commercial traduisant une performance en Note :
- Si performance = 0 ou 50 :
INSUFFISANT - Si performance = 100 :
PASSABLE - Si performance = 150 :
BIEN - Si performance = 200 :
TRES_BIEN - Si performance autre :
null
Ajouter un constructeur par défaut
302 : Modifier la classe Technicien pour ajouter un attribut grade de type Integer avec son getter et son setter
303 : Créer un constructeur pour la classe Technicien qui initialise tous les attributs hérités de la classe Employe en faisant appel au constructeur d'Employe et qui initialise également l'attribut grade.
304 : Redéfinir le setter de l'attribut salaire pour qu'il renvoie la valeur de l'attribut salaire, auquel on ajoute la bonification du grade qui est égale à une augmentation de X0% par rapport au salaire de base :
Ex : Grade 3 : 30% d'augmentation : 1000.0 de salaire avec grade 1 : 1100.0