1. ––
Enrichissez vos classes avec
extends
Objectifs du TD/TP
1. Savoir implémenter les relations entre classes : composition agrégation, héritage ….
2. Comprendre le principe de typage en java et son origine
2. Enrichissez vos classes avec extends Dr A. BENGUEDDACH
Page 1
Enrichissez vos classes
avec extends
Projet 1 : Etablir des Fiches de Paie
Dès le moment où l’entreprise verse un salaire à un
salarié, un bulletin de paie doit être remis à ce
dernier.
Les informations devant figurer obligatoirement
dans un bulletin de paie sont les suivantes :
A propos de l’employeur : Nom,
adresse, numéro d’immatriculation et
référence de l’organisme auprès;
A propos du salarié : Nom, poste
occupé;
Concernant le salaire : Les éléments
qui constituent la rémunération brute
(nombre d’heures de travail, taux horaire,
primes…), les éventuels congés payés pris
durant la période et le montant de
l’indemnité correspondante, les
prélèvements fiscaux, le montant et la date
de versement du net à payer ;
Lorsque c’est le cas, les heures
supplémentaires ou complémentaires
doivent également apparaitre sur le bulletin
de paie ;
Supposant que l’entreprise veuille gérer la paie de
ses employés selon deux catégories d’employé : des
employés à temps plein et des employés à temps
partiel.
Les Employés à temps plein ont un salaire fixe par
mois. Si l’employé à temps plein travaille la nuit et
les week-ends, il reçoit une prime.
Quant aux employés à temps partiel, ils sont
payés à la base d’un salaire horaire. Les employés à
temps partiel ne bénéficient d’aucune prime.
Ecrire un programme qui établit les fiches de paie
de tous les employés d’une entreprise donnée.
Projet 2 : Les robots
La classe Robot modélise l’état et le
comportement de robots mobiles.
Chaque robot :
A un nom,
A une direction Nord, Est, Sud ou
Ouest,
A une position x définit un déplacement
vers l’Est et y définit un déplacement vers
le Nord,
………………….….
Avec la méthode avance() : le robot peut
avancer d’un pas en avant.
Avec la méthode droite() : le robot peut
tourner de 90° pour changer de direction.
Si sa direction était Nord elle devient Est,
si c’était Est elle devient Sud. Les robots
ne peuvent pas se tourner à gauche.
Le nom, la position et la direction d’un
robot lui sont donnés au moment de sa
création. Le nom est obligatoire mais on
peut ne pas spécifier la position et la
direction, qui sont définis par défaut à (0,0)
et Est.
On veut améliorer ces robots en créant une
nouvelle génération de robots les RobotNG
qui ne remplacent pas les anciens robots mais
peuvent cohabiter avec eux.
Les RobotNG savent faire la même chose mais
aussi :
Avancer de plusieurs pas en une seule fois grâce à
une méthode avance() qui prend en paramètre le
nombre de pas n,
Tourner à gauche de 90° grâce à la méthode
gauche() le robot tourne 3 fois à droite,
Faire demi-tour grâce à la méthode demiTour() le
robot fait un demi-tour en tournant 2 fois.
Ecrire un programme qui simule la création de
plusieurs robots de l’ancien et du nouveau modèle
et afficher leurs états.
3. Enrichissez vos classes avec extends
Page 2
Activité 1 : Héritage
1. On considère le code suivant : A a=new A() ; B
b=new B() ; B e=new C() ; Quelle est la réponse
incorrecte ?
▢ A. A d=new B()
▢ B. A d=(A)b;
▢ C. B d= new A();
▢ D. C d=(C)e ;
2. On considère les classes définies par :
class A{ protected int a1, a2; A(){a1= 1; a2=2;}}
class B extends A{ protected int b; B(){b=3;}}
class C extends B { private int c1, c2; C(){c1=a2;
c2=3*a2;}}
Quel est le résultat du morceau de code en suivant
l’ordre de création des variables :
C monC= new C() ;
▢ A. a1=1 ; a2=2 ; b= 3 ; c1=2 ; c2=3
▢ B. a1=1 ; a2=2 ; b= 3 ; c1=2 ; c2=6
▢ C. c1=2 ; c2=2
▢ D. Erreur de compilation
3. On considère les classes O1 et O2 suivantes :
class O1 {}
class O2 extends O1 {}
public class Exo1 { public static void main(String[]
args){
O1 unO1 = new O2();
O2 unO2 = unO1;}}
Trouver la bonne réponse
▢ A. Upcasting
▢ B. Downcasting
▢ C. Erreur
▢ D. Polymorphisme
Activité 2 : Typage en Java
Soit la classe D définit par:
class D extends B{
public void ma(){ System.out.println("ma de D");}
public void md(A a){ System.out.println("a de D");}
public void md(B b){ System.out.println("b de D");}
public void md(A a1, A a2){
System.out.println("a1, a2 de D");}
public void md(B b1, B b2){
System.out.println("b1, b2 de D");}
public void md(A a, B b){
System.out.println("a, b de D");
}
(*) les md()sont déclarées dans le corps
de la class D
On considère le morceau de code suivant
A a1 = new A() ;
B b = new E() ;
A a2 = b;
D d = new E();
b.ma() ;
d.md(a1,a2);
d.md(a1) ;
Trouver la bonne réponse
▢ A. ma de A ; a1, a2 de D ; a de D
▢ B. ma de D ; a1, a2 de D ; a de E
▢ C. ma de D ; a, b de D ; a de E
4. Enrichissez vos classes avec extends Dr A. BENGUEDDACH
Page 3
▢ D. erreur
Activité 3 : Typage en Java
Complétez le tableau suivant :
Compilation Exécution
A a1 = new A() ;
A a2 = new B() ;
B b1 = new B() ;
B b2 = new A() ;
a1.a() ;
a2.a() ;
b1.a() ;
b2.a() ;
a1.b() ;
a2.b() ;
b1.b() ;
b2.b() ;
a1.c() ;
a2.c() ;
b1.c() ;
b2.c() ;
((B)a1).c() ;
((B)a2).c() ;
((B)b1).c() ;
((B)b2).c() ;
((A)b1).a() ;
Projet 3 : Gestion des
stocks/Gestion des saisies
invalides
Le contrôle des stocks, connu également sous le
nom de contrôle de l'inventaire, est utilisé pour
montrer quel est le volume de vos stocks à un
certain moment et de quelle façon en faire le suivi.
Tout ce que vous utilisez pour fournir vos services
et exploiter votre entreprise fait partie de votre
stock.
Un système informatisé de contrôle des stocks est
un bon choix pour les entreprises traitant avec de
nombreux types de stocks. Parmi d'autres
caractéristiques utiles, on peut trouver :
Le traitement des bons de
commande et le traitement des bons
d'achat peuvent être intégrés au système
pour que le stock s'équilibre et que les
statistiques soient automatiquement
mises à jour au fur et à mesure que les
commandes sont traitées.
La surveillance automatique du stock,
déclenchant des commandes lorsque
le niveau de nouvelle commande est
atteint.
Le contrôle automatique du lot si vous
produisez des biens en lots.
L'identification des fournisseurs les moins
chers et les plus rapides.
Les systèmes de codes à barres qui
accélèrent le traitement et
l'enregistrement. Le logiciel imprimera et
lira les codes à barres provenant de votre
ordinateur.
L'identification par radiofréquence (IRF)
qui permet de suivre les composantes ou
les produits individuels tout au long de la
chaîne d'approvisionnement.
Réalisez une application qui fait le suivi des stocks
du Magasin de l’Université.
Source : http://www.infoentrepreneurs.org/fr/guides/bl--
-controle-des-stocks-et-inventaire/