Vous êtes sur la page 1sur 5

Ecole Polytechnique Sousse Matière : JAVA 1

Enseignant :Mr.Trabelsi Selem Classe : 4 Génie télécom & réseau


TP : Classe abstraite et interface

Une société vous demande de lui développer un logiciel en JAVA pour le suivi et la gestion des
ressources humaines (voir le diagramme de classe). Cette société se base sur un ensemble des Employe
caractérisés par les attributs suivants :
 matricule de type chaine de caractère.
 nom de type chaine de caractère.
 prenom de type chaine de caractère.
 tauxImpot de type réel (float).
La classe Employe implémente les méthodes ci-dessous :
 Employe () : constructeur prend tous les attributs d’un employé comme paramètres.
 void afficher () : affiche tous les attributs d’un employé sur l’écran sous forme d’une seule ligne.
 float getTauxImpot () : retourne le tauxImpot.
La classe Employe implémente une interface CalculSalaire qui offre trois méthodes getSalaireBrut (),
getSalaireNet () et getImpot () de types float.
1) Développer le code de l’interface CalculSalaire et préciser pourquoi on utilise des interfaces dans
un programme java ? (2 pts)
2) Développer le code de la classe Employe. Est-ce que cette classe peut être instanciée, pourquoi ?
Un employé de cette société peut être un Ingenieur, un Technicien ou un Ouvrier. Ces trois classes
héritent de la classe Employe. (3 pts)
3) Développer le code de la classe Ingenieur qui ajoute trois attributs : prime (type float),
salaireMensuel (type float) et specialite (typeString) et implémente les cinq méthodes suivant :
 Ingenieur () : constructeur prend comme paramètres les attributs de la classe mère et tous les
attributs de l’ingénieur.
 float getSalaireBrut () : définit la méthode de l’interface CalculSalaire et retourne le SalaireBrut
= SalaireMensuel + prime.
 float getImpot () : définit la méthode de l’interface CalculSalaire et retourne l’Impot
= SalaireBrut * tauxImpot.
 float getSalaireNet () : définit la méthode de l’interface CalculSalaire et retourne le SalaireNet
= SalaireBrut - impot.
 void afficher () : affiche les attributs de l’employé, les attributs de l’ingénieur, le salaireBrut,
l’impôt et le salaireNet.(3 pts)

Page 1
4) Développer le code de la classe Technicien qui ajoute quatre attributs : nbHeureSupp (type
entier), prixHeureSupp (type entier), salaireMensuel (type float) et specialite (type String) et
implémente les cinq méthodes suivant :
 Technicien () : constructeur prend comme paramètres les attributs de la classe mère et tous les
attributs du technicien.
 float getSalaireBrut () : définit la méthode de l’interface CalculSalaire et retourne le SalaireBrute
= SalaireMensuel + (nbHeureSupp* prixHeureSupp).
 float getImpot () : définit la méthode de l’interface CalculSalaire et retourne l’Impot
= SalaireBrut * tauxImpot.
 float getSalaireNet () : définit la méthode de l’interface CalculSalaire et retourne le SalaireNet
= SalaireBrut - impot.
 void afficher () : affiche les attributs de l’employé, les attributs du Technicien, le salaireBrut,
l’impôt et le salaireNet.(3 pts)
5) Développer le code de la classe Ouvrier qui ajoute deux attributs : nbHeure (type entier),
prixHeure (type entier) et implémente les quatre méthodes suivant :
 Ouvrier () : constructeur prend comme paramètres les attributs de la classe mère et tous les
attributs de l’ouvrier.
 float getSalaireBrut () : définit la méthode de l’interface CalculSalaire et retourne le SalaireBrut
= nbHeure* prixHeure.
 float getImpot () : définit la méthode de l’interface CalculSalaire et retourne l’Impot
= SalaireBrut * tauxImpot.
 float getSalaireNet () : définit la méthode de l’interface CalculSalaire et retourne le SalaireNet
= SalaireBrut - impot.
 void afficher () : affiche les attributs de l’employé, les attributs de l’ouvrier, le salaireBrut,
l’impôt et le salaireNet.(3pts)
6) Développer une classe Societe qui géré les employés et se caractérise par les attributs suivants :
nom_Soc : de type chaine de caractère.
tabEmploye : un tableau de type Employe.
int maxEmploye : un entier qui définit la taille maximale du tableau tabEmploye.
La classe Societe implémente les méthodes suivantes :
 Societe () : un constructeur prend comme paramètres le nom et la taille tu tableau tabEmploye.
 boolean ajouter (Employe employe) : ajoute un objet de type Epmloye (ou bien ses classes fils) et
retourne vrai si l’ajout est réussi (existe une case vide dans tabEmploye) si non faux.

Page 2
 boolean supprimer (int ind) : supprime l’employé d’indice ind et retourne vrai si non retourne
faux.
 float getSommeSalaireNetIngeneiure() : retourne la somme de tous SalaireNet des ingénieurs
stocké dans le tableau tabEmploye.
7) Développer une classe TestSociete qui contient une méthode main et permet de tester votre
programme comme suit : (3 pts)
 Instancier un objet Societe.
 Instancier trois objets de type Ingnieur, deux objets de type Technicien et un objet de type
ouvrier.
 Afficher les salaires Bruts et les salaires Nets de ces objets.
 Ajouter ces objets à votre société (tableau tabEmploye)
 Supprimer l’objet d’indice 2 du tableau tabEmploye.
 Afficher la somme de tous les SalaireNet des ingénieurs.

Création d'un tableau


Un tableau se déclare et s'instancie comme une classe :
Type monTableau[ ] = new type [taille]; ou
Type [ ] monTableau = new Type [taille];
Remplissage d'un tableau : exemple un tableau d’entier
monTableau[5] = 23;
Ceci est particulièrement utile lorsque nous voulons parcourir les éléments d'un tableau :
for (int i = 0; i < taille; i++) {
monTableau[i] = element ;
// traitement
}

Page 3
Societe
int maxEmploye
String nom
tabEmploye
Societe (…)
void afficher ()
void ajouter (….)
void supprimer (…)
float getSommeSalaireNetIngeneiure()

Employe
String matricule
String nom
« interface »
String prenom
float tauxImpot CalculSalaire
Employe (…) getSalaireBrut ()
void afficher () getSalaireNet ()
float getTauxImpot () getImpot ()

Ingenieur Technicien Ouvrier


float prime int nbHeureSupp int nbHeure
float salaireMensuel int prixHeureSupp int prixHeure
String specialite float salaireMensuel
Ouvrier (…)
Ingenieur (…) String specialite
void afficher ()
void afficher () Technicien (..) float getImpot ()
float getImpot () void afficher () float getSalaireBrut ()
float getSalaireBrut () float getImpot ()Page 4 float getSalaireNet ()
float getSalaireNet () float getSalaireBrut ()
float getSalaireNet ()
Diagramme de classe

Bonne chance

Page 5