OFFICE DE LA FORMATION
PROFESSIONNELLE ET DE LA
PROMOTION DE TRAVAIL
Direction Régionale Fès -
Meknès
MODULE 103: PROGRAMMATION EN ORIENTEE OBJET
TP3 Objectifs ciblés
Créer les classes de base et des classes
dérivées
Redéfinir des méthodes de la classe de
base dans les classes dérivées
Exercice 1 (Héritage simple) :
Ecrire une classe Bâtiment avec les attributs suivants :
adresse
2) La classe Bâtiment peut être instanciée des deux façons suivantes :
Batiment(),
Batiment (adresse).
3) La classe Bâtiment doit contenir des accesseurs et mutateurs (ou
propriétés) pour les différents attributs.
4) La classe Bâtiment doit contenir une méthode __str__ () donnant une représentation
du Bâtiment.
5) Ecrire une classe Maison héritant de Bâtiment avec les attributs suivants :
NbPieces: Le nombre de pièces de la maison.
6) La classe Maison peut être instanciée des deux façons suivantes :
Maison(),
Maison(adresse, nbPieces).
7) La classe Maison doit contenir des accesseurs et mutateurs (ou des
propriétés) pour les différents attributs.
8) La classe Maison doit contenir une méthode __str__ () donnant une représentation de
la Maison.
9) Ecrire aussi un programme afin de tester ces deux classes.
Exercice 2(Héritage hiérarchique) :
Soit les classes suivantes :
Une classe Personne qui comporte trois champs privés, nom, prénom et date de
naissance.
Cette classe comporte un constructeur pour permettre d'initialiser les données. Elle
comporte également une méthode polymorphe Afficher pour afficher les données de
chaque personne.
Une classe Employé qui dérive de la classe Personne, avec en plus un champ
Salaire accompagné de sa propriété, un constructeur et la redéfinition de la
méthode Afficher.
Une classe Chef qui dérive de la classe Employé, avec en plus un champ Service
accompagné de sa propriété, un constructeur et la redéfinition de la méthode
Afficher.
Une classe Directeur qui dérive de la classe Chef, avec en plus un champ Société
accompagné de sa propriété, un constructeur et la redéfinition de la méthode
Afficher.
Travail à faire :
1) Créer les classe Personne, Employé, Chef et Directeur.
1) Créer un programme de test qui comporte un tableau de huit personnes : cinq
employés, deux chefs et un directeur (8 références de la classe Personne dans
lesquelles ranger 5 instances de la classe Employé, 2 de la classe Chef et 1 de la
classe Directeur).
2) Affichez l'ensemble des éléments du tableau.
Exercice 3 :
Partie I:
1. Créez une classe `Employe` avec les attributs suivants :
- `nom` (string)
- `prenom` (string)
- `age` (int)
- `anciennete` (int)
Ajoutez les méthodes :
- `afficher()`: affiche les informations de la personne.
- `calculer_base_salaire()`: calcule la base du salaire de la personne (laisser la méthode
vide ).
- `calculer_salaire()`: calcule le salaire de la personne (base de salaire plus 10% par année
d’ancienneté)
Ajoutez le constructeur.
Partie II:
1. Définissez les classes dérivées d’`Employe` suivantes :
- Classe `Commercial` avec les attributs :
- `chiffre_affaire` (double)
et les données statiques constantes :
- `BASE` (double)
- `PART` (double)
La base de salaire est donnée par la formule : `BASE + chiffre_affaire * PART`.
- Classe `Technicien` avec les attributs :
- `nb_unite_produite` (int)
Et les données statiques constantes :
- `BASE` (double)
- `PART` (double)
- `GAIN_UNITE` (double)
La base de salaire est donnée par la formule : `BASE + nb_unite_produite * PART *
GAIN_UNITE`.
- Classe `Manutentionnaire` avec les attributs :
- `nb_heures` (int)
et la donnée statique constante :
- `BASE_SALAIRE_HORAIRE` (double)
La base de salaire est donnée par la formule : `BASE_SALAIRE_HORAIRE *
nb_heures`.
- Implémentez les différentes classes et testez-les
5