Vous êtes sur la page 1sur 4

Prepa A2

Atelier java

TPN 6 : Classe abstraite, interface

Exercice 1 : On dispose de la hirarchie suivante :

Forme
Forme 2D
Ellipse
- Cercle
Rectangle
- Carre
Forme 3D
Sphre
Cylindre
1. Dvelopper les classes ncessaires pour mettre en uvre cette structure.
2. Associer chaque classe les mthodes convenables parmi les suivantes :
double surface()
double perimetre
double volume()
3. Dans la classe TestFormes, instancier quelques classes et tester les
mthodes associes.
Exercice 2 : On vous demande dcrire :
Une interface nomm Homme possdant une seule mthode :
void identite() dont le rle est dafficher les informations concernant un homme.
Une classe Personne implmentant cette interface et possdant deux attributs
privs nom et prnom de type String et un constructeur paramtr avec le nom
du personne.
Une classe Client hritant de la classe Personne et implmentant linterface
Homme avec un attribut priv supplmentaire nomm numro de type entier et
un constructeur paramtr en consquence.
Une classe Peuple contenant deux attributs privs : un tableau dHommes
nomm pays de capacit 100 et un entier nbHommes reprsentant le nombre
dhommes dans pays.
Cette classe contient galement deux mthodes :

ISSAT Sousse
A.U : 2014-2015

Prepa A2
Atelier java

void naissance (Homme h) : permet dajouter un homme dans pays


void explorer () : affiche lidentit de chaque homme dans pays.
Tester les mthodes naissance et explorer aprs avoir plac dans pays des
personnes et des clients.
Exercice 3

Cet exercice vous permettra de concevoir une hirarchie de classes utilisant la


notion d'interface. Il vous servira galement de rvision pour les notions
d'hritage, de classes abstraites et de polymorphisme.
Le directeur d'une entreprise de produits chimiques souhaite grer les salaires et
primes de ses employs au moyen d'un programme Java. Un employ est
caractris par son nom, son prnom, son ge et sa date d'entre en service
dans l'entreprise.
Dans un fichier Salaires.java, codez une classe abstraite Employe dote des
attributs

ncessaires,

d'une

mthode

abstraite calculerSalaire (ce

calcul

dpendra en effet du type de l'employ) et d'une mthode getNom retournant


une chaine de caractre obtenue en concatnant la chaine de caractres
"L'employ " avec le prnom et le nom.
Dotez

galement

votre

l'ensemble
Calcul

classe

d'un

des

constructeur

prenant

attributs

en

paramtre
ncessaires.

du

salaire

Le calcul du salaire mensuel dpend du type de l'employ. On distingue les types


d'employs suivants :+

Ceux affects la Vente. Leur salaire mensuel est le 20 % du chiffre


d'affairequ'ils ralisent mensuellement, plus 400 Francs.

Ceux affects la Reprsentation. Leur salaire mensuel est galement le


20 % du chiffre d'affaire qu'ils ralisent mensuellement, plus 800 Francs.

Ceux affects la Production. Leur salaire vaut le nombre


d'units produites mensuellement multiplies par 5.

Ceux affects la Manutention. Leur salaire vaut leur nombre d'heures de


travail mensuel multiplies par 65 francs.
Codez dans votre fichier Salaires.java une hirarchie de classes pour les
employs en respectant les conditions suivantes :

ISSAT Sousse
A.U : 2014-2015

Prepa A2
Atelier java

La super-classe de la hirarchie doit tre la classe Employe.

Les nouvelles classes doivent contenir les attributs qui leur sont
spcifiques ainsi que le codage appropri des
mthodes calculerSalaire et getNom, en changeant le mot "employ" par la
catgorie correspondante.
Chaque sous classe est dote de constructeur prenant en argument

l'ensemble des attributs ncessaires.


N'hsitez pas introduire des classes intermdiaires pour viter au

maximum les redondances d'attributs et de mthodes dans les sous-classes


Employs risques
Certains employs des secteurs production et manutention sont appels
fabriquer et manipuler des produits dangereux. Aprs plusieurs ngociations
syndicales, ces derniers parviennent obtenir une prime de risque mensuelle.
Compltez votre programme Salaires.java en introduisant deux nouvelles sousclasses d'employs. Ces sous-classes dsigneront les employs des
secteurs production et manutention travaillant avec des produits dangereux.
Ajouter galement votre programme une interface pour les employs
risque permettant de leur associer une prime mensuelle fixe de 200.-.
Collection d'employs
Satisfait de la hirarchie propose, notre directeur souhaite maintenant
l'exploiter pour afficher le salaire de tous ses employs ainsi que le salaire
moyen. Ajoutez une classe Personnel contenant un ensemble d'employs.
Dfinissez ensuite les mthodes suivantes la classe Personnel :

void ajouterEmploye(Employe) qui ajoute un employ la collection.


void calculerSalaires() qui affiche le salaire de chacun des employs de la

collection.
double salaireMoyen() qui affiche le salaire moyen des employs de la
collection.

Testez votre programme avec le main suivant :


class Salaires {
public static void main(String[] args) {
Personnel p = new Personnel();
p.ajouterEmploye(new Vendeur("Pierre", "Business", 45, "1995", 30000));
p.ajouterEmploye(new Representant("Lon", "Vendtout", 25, "2001", 20000));
p.ajouterEmploye(new Technicien("Yves", "Bosseur", 28, "1998", 1000));
p.ajouterEmploye(new Manutentionnaire("Jeanne", "Stocketout", 32, "1998", 45));
p.ajouterEmploye(new TechnARisque("Jean", "Flippe", 28, "2000", 1000));

ISSAT Sousse
A.U : 2014-2015

Prepa A2
Atelier java

p.ajouterEmploye(new ManutARisque("Al", "Abordage", 30, "2001", 45));


p.afficherSalaires();
System.out.println("Le salaire moyen dans l'entreprise est de " + p.salaireMoyen() + " francs.");

Vous devriez obtenir quelque chose comme :


Le vendeur Pierre Business gagne 6400.0 francs.
Le reprsentant Lon Vendtout gagne 4800.0 francs.
Le technicien Yves Bosseur gagne 5000.0 francs.
Le manut. Jeanne Stocketout gagne 2925.0 francs.
Le technicien Jean Flippe gagne 5200.0 francs.
Le manut. Al Abordage gagne 3125.0 francs.
Le salaire moyen dans l'entreprise est de 4575.0 francs.

ISSAT Sousse
A.U : 2014-2015