TP - Bases de Java
Création et instanciation d’une classe
Créer une classe Java exécutable nommée
Testqui appartient au paquetagetp1. Ajouter un prefixe de packages unique. La classeTestdevra afficher “Hello”.Créer une classe
Personnesans constructeur explicite qui décrit une personne ayant un nom, un prénom, un âge et un salaire. Créer les accesseurs et modificateurs correspondants à ces attributs (l’IDE peut le faire automatiquement). Vous vérifierez qu’un salaire ne peut pas être négatif. Instancier une personnep1dans la méthodemainde la classeTest, puis mettre à jour ses informations et les afficher (Pierre Truc est âgé de 30 ans et gagne 2000€).Ajouter des constructeurs dans la classe
Personnequi initialisent le nom et le prénom, l’âge et la profession. Les deux derniers sont optionnels. Modifier cette classe pour que le nom et le prénom ne puissent plus être modifiés après l’instanciation.Ajouter un attribut qui indique l’année de naissance et les accesseurs associés. Modifier la méthode qui retourne l’âge. L’année courante s’obtient avec
java.util.Calendar.getInstance().get(Calendar.YEAR).Ajouter une méthode
comparerSalaire()qui prend en paramètre une personne et retourne -1, 0 ou 1 selon que celle-ci a un salaire supérieur, égal ou inférieur à l’instance courante. Créer une deuxième personnep2née la même année quep1mais qui gagne plus. Afficher le résultat de la comparaison des salaires dep1etp2.Ajouter une méthode
comparerSalaire()qui prend en paramètre deux personnes et qui retourne un nombre négatif, nul ou positif selon que le salaire de la première est inférieur, égal ou supérieur à celui de la seconde.Attention,
comparerSalaire(Personne)etcomparerSalaire(Personne, Personne)sont-elles des méthodes de classe ou d’instance ?Ajouter un attribut de classe
totalDesSalairesqui indique le total des salaires des personnes et un accesseur. Modifier les méthodes nécessaires pour que le salaire total soit maintenu à jour automatiquement. Est-ce risqué d’écrire simplement une telle méthode ?Afficher le salaire total après la création de chaque personne.
Les méthodes de base
toString()
- Afficher directement l’objet
p1dans la classeTest. - Ajouter une méthode
String toString()à la classePersonnequi retourne une chaîne de caractères qui décrit la personne. - Exécuter
Test.
equals()
- On souhaite considérer que deux personnes sont “égales” dans notre application, si elles sont nées la même année.
- Pour définir une relation d’égalité d’objets en Java, on redéfinit la méthode
boolean equals(Object). - Vérifier que
p1etp2sont égales.
Définition de classes locales
- Pour représenter le fait qu’une
Personnea un cerveau, ajouter une définition de la classeCerveauà l’intérieur de la définition de la classePersonne. - Ajouter un attribut
cerveauàPersonneet instancier un cerveau à chaque personne lors de sa création. - Compiler et exécuter
Test. - Regarder dans le répertoire build les classes qui ont été compilées.
- Essayer de créer une instance de
Cerveaudirectement dans la classeTest.
Pour finir…
Vous allez maintenant créer une classe Entreprise qui permet de représenter des entreprises qui comportent au maximum MAX_EMPLOYES personnes.
Ajouter les méthodes pour créer une entreprise, ajouter des employés et afficher le nombre d’employés, un employé précis et tous les employés (en utilisant le
foreach).Catégoriser les entreprises : Les entreprises doivent appartenir à l’une des trois catégories suivantes :
{PUBLIQUE, PME, GRAND GROUPE}. Modifier la classeEntreprisepour représenter cela en utilisant un typeenumet ajouter trois méthodesisPUBLIQUE(),isPME(),isGRAND_GROUPE()qui retournent un booléen.Ajouter une méthode
miseEnForme()qui passe le nom de toutes les personnes d’une entreprise en majuscule.Modifier votre classe
Test, pour qu’on puisse lui passer en paramètre le nom et le type d’une entreprise, puis la liste des personnes qui la composent.