Vous êtes sur la page 1sur 4

Mehdi Mokni Programmation OO Java

TP4

Héritage
Exercice 1
Soit la classe Vehicule caractérisée par :

• Des attributs privés : couleur et marque (de type chaîne de caractères)


• Un constructeur sans argument. Par défaut, un véhicule est de couleur « Rouge » et de marque
« Ford »
• Un constructeur paramétré avec deux arguments permettant d’initialiser les attributs
• Les accesseurs et les mutateurs des différents attributs
• Une méthode toString qui renvoie dans une chaîne de caractères les différentes propriétés du
véhicule

Soit la classe Voiture qui hérite de la classe Vehicule caractérisée par :

• Le nombre de portes nbPortes


• Un constructeur sans argument (par défaut, une voiture a 5 portes)
• Un constructeur paramétré avec 1 paramètre qui initialise le nombre de portes
• Un constructeur paramétré avec 3 paramètres pour initialiser toutes les caractéristiques d’une
voiture
• Un constructeur par recopie
• L’accesseur et le mutateur de l’attribut nbPortes
• Une méthode comparerVoiture qui renvoie si 2 voitures sont identiques ou non (même valeur
des différents attributs)
• Une méthode toString qui permet d’afficher les différentes caractéristiques d’une voiture

Travail demandé

1. Implémenter les classes Vehicule et Voiture telles que décrites


2. Implémenter la classe Application qui permet de :
• Créer 4 voitures en faisant à chaque fois appel à un constructeur différent
• Modifier la couleur de l’une des voitures
• Afficher les caractéristiques d’une voiture

1
Mehdi Mokni Programmation OO Java

• Comparer 2 voitures et afficher si elles sont identiques


3. Mettre à chaque fois un des constructeurs de la classe Vehicule en commentaire et observer le
résultat. Commenter
4. Créer un package p1 et y dupliquer les classes Vehicule, Voiture et Application. Modifier la
visibilité des attributs de la classe Vehicule en les rendant « protected » et apporter les
modifications nécessaires au code. Que remarquez-vous ? Commenter

Exercice 2
L’objectif de cet exercice est de développer une application Java qui effectue quelques opérations sur
des logements qui peuvent être soit des villas soit des appartements. On développe pour cela les classes
Logement, Villa, Appartement et Test comme suit :

Partie 1

Soit la classe Logement caractérisée par :

• Un attribut privé reference de type chaîne de caractères


• Un attribut protégé superficie de type réel
• Un constructeur paramétré qui prend 2 arguments
• L’accesseur et le mutateur de l’attribut reference
• Une méthode toString qui renvoie dans une chaîne de caractère la référence et la superficie du
logement selon le format suivant :
Logement : Reference : …, Superficie : …
• Une méthode statique grandLogement qui compare 2 logements et renvoie celui qui a la plus
grande superficie

Travail demandé

1. Implémenter la classe Logement telle que décrite

Partie 2

Soit la classe Villa qui hérite de la classe Logement caractérisée par :

• Un attribut privé piscine de type booléen qui précise si la villa est dotée de piscine ou non
• Un attribut privé sJardin de type réel qui indique la superficie du jardin en m2
• Deux constantes PRIX_M2 initialisée à 2500 et PRIX_J initialisée à 1000 qui indiquent
respectivement le prix du m2 de la villa bâtie et le prix du m2 du jardin
• Un constructeur paramétré qui prend 2 arguments : la référence et la superficie de la villa. Par
défaut, la villa n’a ni piscine ni jardin

2
Mehdi Mokni Programmation OO Java

• Un constructeur paramétré qui prend 4 arguments


• Les accesseurs et les mutateurs nécessaires
• Une méthode toString qui renvoie dans une chaîne de caractère toutes les informations
relatives à une villa selon le format suivant :
Logement : Reference : …, Superficie : … de type Villa avec/sans piscine et … m2 de jardin
Où la mention avec piscine ou bien sans piscine qui varie selon la valeur de l’attribut piscine
• Une méthode caclulerPrix qui renvoie le prix d’une villa selon la formule suivante :
Prix Villa = (prix m2 * superficie) + (prix m2 jardin * superficie du jardin) + prix piscine (20000) si
elle existe

Travail demandé

1. Implémenter la classe Villa telle que décrite


2. Implémenter la classe Test qui comprend un programme principal permettant de :
• Créer 2 villas en faisant appel aux 2 constructeurs différents
• Afficher les caractéristiques des 2 villas ainsi que leur prix
Partie 3

Soit la classe Appartement qui hérite de la classe Logement caractérisée par :

• Un attribut privé numEtage de type entier


• Un constructeur paramétré qui prend 2 arguments : la référence et la superficie de
l’appartement. Par défaut, celui-ci est au 1er étage
• Un constructeur paramétré qui prend 3 arguments
• Les accesseurs et les mutateurs nécessaires
• Une méthode toString qui renvoie dans une chaîne de caractère toutes les informations
relatives à un appartement selon le format suivant :
Appartement : Reference : …, NumEtage : …, Superficie : …
• Une méthode caclulerPrix qui renvoie le prix d’un appartement selon le principe suivant :
Prix Appartement = prix m2 * superficie avec :

Num Etage 0, 1 2, 3 4 et plus


Prix du m2 2200 2300 2400

• Une méthode statique plusCherLogement qui compare une villa à un appartement et renvoie
celui qui est plus cher

3
Mehdi Mokni Programmation OO Java

Travail demandé

1. Implémenter la classe Appartement telle que décrite


2. Compléter la classe Test qui comprend un programme principal permettant de :
• Créer 2 appartements en faisant appel aux 2 constructeurs différents
• Afficher les caractéristiques des 2 appartements ainsi que leur prix
• Comparer une villa à un appartement et afficher celui qui a la plus grande superficie :
que remarquez-vous ? Interpréter
• Comparer une villa à un appartement et afficher celui qui est le plus cher : que
remarquez-vous ? Interpréter. Que faire si on veut comparer 2 logements qu’ils soient 2
villas, 2 appartements ou une villa et un appartement ou inversement ?

Vous aimerez peut-être aussi