Université Moulay Ismaïl 2024-2025
ENSAM – Meknès 3A / P. Industriel
TD TP 3 POO Java : Encapsulation et Abstraction
Exercice 1 (Encapsulation)
Objectif : L’objectif est d’implémentation le principe d’encapsulation en modélisant le compte
bancaire. Pour cela vous êtes censés créer une classe CompteBancaire pour représenter un compte
bancaire avec des attributs privés et des méthodes publiques pour manipuler le solde.
Pour atteindre cet objectif, suivre les étapes suivantes :
1. Création de la classe CompteBancaire :
• Créez une classe nommée CompteBancaire.
• Ajoutez les attributs suivants à la classe (tous privés) :
o numeroCompte (String)
o solde (double)
• Ajoutez un constructeur public à la classe qui prend deux paramètres :
o numeroCompte (String)
o soldeInitial (double)
• Dans le constructeur, initialisez les attributs de la classe avec les valeurs des paramètres.
• Ajoutez les méthodes publiques suivantes à la classe :
o deposer(double montant) : Ajoute le montant au solde si le montant est
positif, sinon affiche un message d'erreur.
o retirer(double montant) : Retire le montant du solde si le montant est
positif et inférieur ou égal au solde, sinon affiche un message d'erreur.
o consulterSolde() : Affiche le solde actuel du compte.
o getNumeroCompte() : Retourne le numéro de compte.
2. Création de la classe Main :
• Créez une classe nommée Main avec une méthode main().
• Dans la méthode main(), créez un objet de la classe CompteBancaire en utilisant le
constructeur :
o Le compte doit avoir le numéro "123456" et un solde initial de 1000.
• Affichez le numéro de compte en utilisant la méthode getNumeroCompte().
• Effectuez un dépôt de 500 et affichez le solde en utilisant la méthode consulterSolde().
• Effectuez un retrait de 200 et affichez le solde en utilisant la méthode consulterSolde().
• Tentez d'effectuer un retrait de 1500 et affichez le solde en utilisant la méthode
consulterSolde()
Université Moulay Ismaïl 2024-2025
ENSAM – Meknès 3A / P. Industriel
Exercice 2 (Abstraction)
Objectif : L’objectif de cet exercice est d’implémenter le principe Abstraction. Pour cela on va créer
une hiérarchie de classes pour représenter différents types de voitures, en utilisant l'abstraction pour
définir un comportement commun. Essayer de suivre les étapes ci-dessous.
1. Création de l'interface Vehicule :
• Créez une interface nommée Vehicule.
• Ajoutez les méthodes suivantes à l'interface :
o demarrer() : Démarre le véhicule.
o accelerer() : Accélère le véhicule.
o freiner() : Freine le véhicule.
o afficherDetails() : Affiche les détails du véhicule.
2. Création de la classe abstraite Voiture :
• Créez une classe abstraite nommée Voiture qui implémente l'interface Vehicule.
• Ajoutez les attributs suivants à la classe (tous protégés) :
o marque (String)
o modele (String)
o annee (int)
• Ajoutez un constructeur protégé à la classe qui prend trois paramètres (marque, modele,
annee) et initialise les attributs correspondants.
• Implémentez les méthodes demarrer(), accelerer() et freiner() avec des
comportements génériques.
• Déclarez la méthode afficherDetails() comme abstraite.
3. Création des classes concrètes VoitureDeSport et VoitureFamiliale :
• Créez deux classes concrètes nommées VoitureDeSport et VoitureFamiliale qui
héritent de la classe Voiture.
• Ajoutez des attributs spécifiques à chaque classe (par exemple, puissance pour
VoitureDeSport et nombrePlaces pour VoitureFamiliale).
• Ajoutez des constructeurs publics à chaque classe qui appellent le constructeur de la
superclasse et initialisent les attributs spécifiques.
• Implémentez la méthode afficherDetails() dans chaque classe pour afficher les détails
spécifiques de la voiture.
4. Création de la classe Main :
• Créez une classe nommée Main avec une méthode main().
• Dans la méthode main(), créez des objets des classes VoitureDeSport et
VoitureFamiliale.
• Appelez les méthodes demarrer(), accelerer(), freiner() et
afficherDetails() sur les objets pour tester le comportement des voitures.