Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Programmation Orientée Objet Et Langage Java TD #4

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 6

Université virtuelle de Tunis Master N2TR

Programmation Orientée Objet et Langage Java


TD N° 4

OBJECTIFS: - Héritage, polymorphisme et classe abstraite.

Exercice 1 : Exemple du cours

Voici le diagramme de classe à implémenter :

Exercice 2 :

Tuteur : Dr Sahbi Bahroun 1


Université virtuelle de Tunis Master N2TR

Vous allez programmer le calcul des salaires hebdomadaires des employés d'une entreprise.
Cette entreprise comporte plusieurs types d'employés :
 Des employés qui sont payés suivant le nombre d'heures qu'ils ont travaillé dans la
semaine. Ils sont payés à un certain tarif horaire et leurs heures supplémentaires (au-
delà de 39 heures) sont payées 30 % de plus que les heures normales.

 D'autres employés, payés de la même façon, mais leurs heures supplémentaires sont
payées 50 % de plus que les heures normales.

 Les commerciaux sont payés avec une somme fixe à laquelle on ajoute 1 % du chiffre
d'affaires qu'ils ont fait dans la semaine.

Modélisez cette situation à l'aide de classes. Vous donnerez un nom à chacun des employés.
On ne pourra modifier le nom d'un employé.
 Vous commencerez par écrire une classe Employe dont hériteront les autres classes.

 Créer la méthode setInfosSalaire en fonction du type d’employé

 Les classes comporteront au moins 2 constructeurs : un qui ne prend en paramètre


que le nom de l'employé et l'autre qui prend en paramètres le nom et toutes les
informations pour le calcul du salaire.

 Le calcul des salaires se fera dans la méthode getInfoSalaire() qui sera utilisée pour
faire du polymorphisme.

Une classe Paie comportera une unique méthode main() qui entrera les informations sur des
employés des différents types (au moins 3 commerciaux). Les employés seront enregistrés
dans un tableau employés. Au moins un des employés sera créé avec le constructeur qui n'a
que le nom en paramètre, et vous entrerez ensuite les informations pour son salaire avec la
méthode setInfosSalaire. Pour au moins un autre employé, vous utiliserez le constructeur
pour entrer les informations sur le salaire.

Exercice 3:

Tuteur : Dr Sahbi Bahroun 2


Université virtuelle de Tunis Master N2TR

2.1 La classe Vehicule

Dans un fichier GestionVehicules.java, définissez une classe Vehicule qui a pour


attributs des informations valables pour tout type de véhicule :

 sa marque ;
 sa date d'achat ;
 son prix d'achat ;
 son prix courant.

Définissez un constructeur prenant en paramètre les trois attributs correspondant à la


marque, la date d'achat et le prix d'achat. Le prix courant sera calculé plus tard.

Redéfinissez la méthode toString qui affiche l'état de l'instance, c'est-à-dire la valeur de


ses attributs.

2.2 La classe Voiture et la classe Avion

Définissez deux classes Voiture et Avion, héritant de la classe Vehicule et ayant les
attributs supplémentaires suivants :

 pour la classe Voiture :


o sa cylindrée ;
o son nombre de portes ;
o sa puissance ;
o son kilométrage.
 pour la classe Avion :
o son type (hélices ou réaction) ;
o son nombre d'heures de vol.

Définissez, pour chacune de ces classes, un constructeur permettant l'initialisation


explicite de l'ensemble des attributs, ainsi la méthode toString.

Tuteur : Dr Sahbi Bahroun 3


Université virtuelle de Tunis Master N2TR

Nb : Constructeurs et méthodes d'affichage devront utiliser les méthodes appropriées de


la classe parente !

Encore des méthodes

Ajoutez une méthode void calculePrix(int anneActuelle) dans la classe Vehicule qui, à
ce niveau, fixe le prix courant au prix d'achat moins 1% par année (entre la date d'achat et
la date actuelle).

Redéfinissez cette méthode dans les deux sous-classes Voiture et Avion de sorte à
calculer le prix courant en fonction de certains critères, et mettre à jour l'attribut
correspondant au prix courant :

 Pour une voiture, le prix courant est égal au prix d'achat, moins :
o 2% pour chaque année depuis l'achat jusqu'à la date actuelle
o 5% pour chaque tranche de 10000km parcourus
o 10% s'il s'agit d'un véhicule de marque "Renault" ou "Fiat" et plus 20%
s'il s'agit d'un véhicule de marque "Ferrari" ou "Porsche".

 Pour un avion, le prix courant est égal au prix d'achat, moins :


o 10 % pour chaque tranche de 1000 heures de vol s'il s'agit d'un avion à
réaction.
o 10 % pour chaque tranche de 100 heures de vol s'il s'agit d'un avion à
hélices.

Le prix doit rester positif (donc s'il est négatif, on le met à 0).

Exercice 4:
Soit la classe Test suivante. Dites si les instructions 1 à 8 sont valides ou non. En cas
d'une instruction non valide, préciser s'il s'agit d'une erreur de compilation ou
d'exécution.

class Test

{ public static void main (String [ ] args)

C1 o1 = new C1( );

Tuteur : Dr Sahbi Bahroun 4


Université virtuelle de Tunis Master N2TR

C1 o2 = new C11( );

C111 o3 = new C111( );

C11 o4 = new C111( );

C1 o5 = new C111( );

o1 = o2; //instruction1

o1 = o3; //instruction2

o3 = o1; //instruction3

o4 = o5; //instruction4

o3 = (C111) o1; //instruction5

o4 = (C11) o5; //instruction6

o4 = (C111) o2; //instruction7

o3 = (C11) o5; //instruction8

class C1 {}

class C11 extends C1{}

class C111 extends C11{}

Tuteur : Dr Sahbi Bahroun 5


Université virtuelle de Tunis Master N2TR

Tuteur : Dr Sahbi Bahroun 6

Vous aimerez peut-être aussi