Cette série met en pratique le chapitre 2 : classe, attributs, méthodes,
constructeurs, encapsulation, static, tableaux d’objets et relations.
Les packages du chapitre 1 reviennent dans l’exercice 2.9.
Essayez de résoudre chaque exercice par vous-même avant d’afficher la solution.
Chaque solution place le programme dans une classe MainClass,
avec la méthode main. Les autres classes décrivent les objets.
En Java, chaque classe publique se place dans un fichier qui porte son nom
(Chien.java, MainClass.java, etc.).
Exercice 2.1 — Créer une classe simple
Créer une classe Chien avec un attribut nom de type
String. Ajouter une méthode aboyer() qui affiche
Woof!. Dans MainClass, créer une instance de
Chien, lui donner un nom, puis appeler aboyer().
Exercice 2.2 — Gérer des attributs
Créer une classe Voiture avec deux attributs :
marque (String) et annee (int).
Ajouter une méthode afficherDetails() qui affiche la marque et l’année.
Dans MainClass, créer une instance, initialiser les attributs,
puis appeler afficherDetails().
Exercice 2.3 — Manipuler un solde de compte
Créer une classe CompteBancaire avec un attribut solde
de type double. Écrire deposer(double montant) pour
ajouter au solde, et retirer(double montant) pour soustraire du solde.
Un retrait ne doit pas rendre le solde négatif.
Dans MainClass, créer un compte, effectuer quelques dépôts et retraits,
puis afficher le solde avec afficherSolde().
Exercice 2.4 — Constructeur paramétré et constructeur par défaut
Créer une classe Etudiant avec nom (String)
et age (int). Écrire un constructeur paramétré qui
initialise ces attributs. Ajouter un constructeur sans paramètre qui initialise
nom Ă "Inconnu" et age Ă 18,
en appelant this(...). Ajouter afficherInfos().
Dans MainClass, créer un étudiant avec chaque constructeur,
puis afficher ses informations.
Exercice 2.5 — Constructeur avec surcharge
Créer une classe Rectangle avec largeur et
hauteur de type double. Écrire un constructeur
sans paramètre qui initialise les deux attributs à 1.0,
et un constructeur paramétré qui les initialise avec les valeurs fournies.
Ajouter calculerAire(), qui retourne l’aire.
Dans MainClass, créer un rectangle avec chaque constructeur,
puis afficher les deux aires.
Exercice 2.6 — Attribut de classe (static)
Créer une classe Compteur avec un attribut de classe
nombreInstances (int) qui compte les instances créées.
Le constructeur incrémente cet attribut à chaque new.
Ajouter afficherNombreInstances(), qui affiche le total.
Dans MainClass, créer plusieurs compteurs, puis afficher le nombre.
Exercice 2.7 — Méthodes de classe (static)
Créer une classe MathUtils avec les méthodes static suivantes :
max(int a, int b): retourne le plus grand des deux entiers ;min(int a, int b): retourne le plus petit des deux entiers ;pow(int base, int exposant): retourne la puissance (base exposant) ;sqrt(double valeur): retourne la racine carrée.
Dans MainClass, appeler chaque méthode avec des exemples
et afficher les résultats.
Exercice 2.8 — Classe Personne et population
Créer une classe Personne avec nom, prenom
et age. Ajouter un attribut static
nombrePersonnes, incrémenté par le constructeur.
Écrire la méthode de classe afficherPopulation(), qui affiche le total.
Dans MainClass, créer un tableau de Personne,
y placer plusieurs instances, puis appeler afficherPopulation().
Exercice 2.9 — Points et lignes en 2D avec packages
Créer une application qui gère des points dans un plan et les lignes qui les relient.
-
Dans le package
geometrie, écrire une classePointavec les attributsxety, et une méthodeafficher()pour les coordonnées. -
Écrire une classe
Lignequi utilise deux objetsPoint, calcule la longueur, et affiche ses informations avecafficher(). -
Dans le package
application, écrireMainClass: créer des points et une ligne, puis afficher les informations.
Utiliser des import pour passer d’un package à l’autre.
Exercice 2.10 — Validation dans les setters
Créer une classe Etudiant qui gère le nom et la note d’un étudiant.
-
Deux attributs privés :
nom(String) etnote(double). -
setNomretire les espaces superflus, puis vérifie que le nom ne contient que des lettres et des espaces. Sinon, afficher un message d’erreur. -
setNoten’accepte qu’une note entre 0 et 20. Sinon, afficher un message d’erreur.
Dans MainClass, créer un étudiant, initialiser le nom et la note
avec les setters, puis afficher les informations avec les getters.
Exercice 2.11 — Salle de cinéma et spectateurs
Gérer les films d’une salle et les spectateurs de chaque projection.
La classe Film a des attributs privés titre
(String), duree (int, en minutes)
et genre (String). Elle possède aussi un tableau
spectateurs et un entier nbSpectateurs.
Écrire un constructeur, des getters, ajouterSpectateur(Spectateur spectateur)
(sans dépasser la capacité du tableau) et afficherSpectateurs().
La classe Spectateur a des attributs privés nom
(String) et age (int), un constructeur
et des getters.
Dans MainClass, créer des films et des spectateurs,
associer des spectateurs aux films, puis afficher chaque film avec sa liste.