Enrichissez vos-classes-avec-extends-20

Asmaa BENGUEDDACH
Asmaa BENGUEDDACHDocent à Enseignante universitaire

1. Savoir implémenter les relations entre classes : composition agrégation, héritage …. 2. Comprendre le principe de typage en java et son origine

––
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
 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.
 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
 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/

Recommandé

exercices en C par
exercices en Cexercices en C
exercices en Ccoursuniv
4.1K vues7 diapositives
Exercices en langage c par
Exercices en langage cExercices en langage c
Exercices en langage cDaoua Lotfi
5.7K vues245 diapositives
Serie2 par
Serie2Serie2
Serie2mohamed_SAYARI
24.9K vues15 diapositives
Serie par
SerieSerie
Seriemohamed_SAYARI
12K vues6 diapositives
Tp1 compte rendu en langage c par
Tp1 compte rendu en langage cTp1 compte rendu en langage c
Tp1 compte rendu en langage cEbrima NJIE
8.2K vues8 diapositives
Chapitre05 : Les tableaux par
Chapitre05 : Les tableauxChapitre05 : Les tableaux
Chapitre05 : Les tableauxL’Université Hassan 1er Settat
3.2K vues17 diapositives

Contenu connexe

Tendances

Les enregistrements par
Les enregistrements Les enregistrements
Les enregistrements mohamed_SAYARI
16.6K vues6 diapositives
Corrigés exercices langage C par
Corrigés exercices langage CCorrigés exercices langage C
Corrigés exercices langage Ccoursuniv
49.2K vues16 diapositives
algorithme tronc commun lycée par
algorithme tronc commun lycéealgorithme tronc commun lycée
algorithme tronc commun lycéeKayl Mido
31.9K vues5 diapositives
Série sous programmes (bac scientifique) par
Série sous programmes (bac scientifique)Série sous programmes (bac scientifique)
Série sous programmes (bac scientifique)Hichem Kemali
13.3K vues4 diapositives
Ch8 correction exercices (1) par
Ch8 correction exercices (1)Ch8 correction exercices (1)
Ch8 correction exercices (1)abdellah12
11.3K vues10 diapositives
exercices-corriges-dalgorithmique par
exercices-corriges-dalgorithmiqueexercices-corriges-dalgorithmique
exercices-corriges-dalgorithmiquefast xp
25.6K vues24 diapositives

Tendances(20)

Corrigés exercices langage C par coursuniv
Corrigés exercices langage CCorrigés exercices langage C
Corrigés exercices langage C
coursuniv49.2K vues
algorithme tronc commun lycée par Kayl Mido
algorithme tronc commun lycéealgorithme tronc commun lycée
algorithme tronc commun lycée
Kayl Mido31.9K vues
Série sous programmes (bac scientifique) par Hichem Kemali
Série sous programmes (bac scientifique)Série sous programmes (bac scientifique)
Série sous programmes (bac scientifique)
Hichem Kemali13.3K vues
Ch8 correction exercices (1) par abdellah12
Ch8 correction exercices (1)Ch8 correction exercices (1)
Ch8 correction exercices (1)
abdellah1211.3K vues
exercices-corriges-dalgorithmique par fast xp
exercices-corriges-dalgorithmiqueexercices-corriges-dalgorithmique
exercices-corriges-dalgorithmique
fast xp25.6K vues
Sujets de preparation bac tp (sayari) par mohamed_SAYARI
Sujets de preparation bac tp (sayari)Sujets de preparation bac tp (sayari)
Sujets de preparation bac tp (sayari)
mohamed_SAYARI4.5K vues
Cours structures des données (langage c) par rezgui mohamed
Cours structures des données (langage c)Cours structures des données (langage c)
Cours structures des données (langage c)
rezgui mohamed8.1K vues
Cours langage c par coursuniv
Cours langage cCours langage c
Cours langage c
coursuniv8.2K vues
Initiation au C++ par IsenDev
Initiation au C++Initiation au C++
Initiation au C++
IsenDev1.5K vues
Javascript : que fait ce code? par Ruau Mickael
Javascript : que fait ce code?Javascript : que fait ce code?
Javascript : que fait ce code?
Ruau Mickael695 vues
programmation orienté objet c++ par coursuniv
programmation orienté objet c++programmation orienté objet c++
programmation orienté objet c++
coursuniv5.4K vues

Similaire à Enrichissez vos-classes-avec-extends-20

Examen organigrame par
Examen organigrameExamen organigrame
Examen organigramenabildekess
51 vues5 diapositives
Examen organigrame par
Examen organigrameExamen organigrame
Examen organigramenabildekess
204 vues5 diapositives
Examen organigrame par
Examen organigrameExamen organigrame
Examen organigramenabildekess
60 vues5 diapositives
ALGORITHMIQUE 83 ExerciceS Corrig S By ExoSup par
ALGORITHMIQUE 83 ExerciceS Corrig S By ExoSupALGORITHMIQUE 83 ExerciceS Corrig S By ExoSup
ALGORITHMIQUE 83 ExerciceS Corrig S By ExoSupKarla Adamson
18 vues59 diapositives
ALGORITHMIQUE_83_ExerciceS_corriges_By_E.pdf par
ALGORITHMIQUE_83_ExerciceS_corriges_By_E.pdfALGORITHMIQUE_83_ExerciceS_corriges_By_E.pdf
ALGORITHMIQUE_83_ExerciceS_corriges_By_E.pdfadeljaouadi
63 vues59 diapositives
Algorithmique par
AlgorithmiqueAlgorithmique
AlgorithmiqueSoufien Zarrouki
5.9K vues59 diapositives

Similaire à Enrichissez vos-classes-avec-extends-20(20)

ALGORITHMIQUE 83 ExerciceS Corrig S By ExoSup par Karla Adamson
ALGORITHMIQUE 83 ExerciceS Corrig S By ExoSupALGORITHMIQUE 83 ExerciceS Corrig S By ExoSup
ALGORITHMIQUE 83 ExerciceS Corrig S By ExoSup
Karla Adamson18 vues
ALGORITHMIQUE_83_ExerciceS_corriges_By_E.pdf par adeljaouadi
ALGORITHMIQUE_83_ExerciceS_corriges_By_E.pdfALGORITHMIQUE_83_ExerciceS_corriges_By_E.pdf
ALGORITHMIQUE_83_ExerciceS_corriges_By_E.pdf
adeljaouadi63 vues
Java uik-chap5-poo avance vf par Amel Morchdi
Java uik-chap5-poo avance vfJava uik-chap5-poo avance vf
Java uik-chap5-poo avance vf
Amel Morchdi686 vues
Les structures de données.pptx par PROFPROF11
Les structures de données.pptxLes structures de données.pptx
Les structures de données.pptx
PROFPROF1170 vues
1Algebre-de-boole-exercices-corrigés-01(www.alloacademy.com).pdf par korukobasket
1Algebre-de-boole-exercices-corrigés-01(www.alloacademy.com).pdf1Algebre-de-boole-exercices-corrigés-01(www.alloacademy.com).pdf
1Algebre-de-boole-exercices-corrigés-01(www.alloacademy.com).pdf
korukobasket110 vues
Examen de-passage-developpement-informatiques-tsdi-2015-synthese-variante-2-o... par abdelghani04
Examen de-passage-developpement-informatiques-tsdi-2015-synthese-variante-2-o...Examen de-passage-developpement-informatiques-tsdi-2015-synthese-variante-2-o...
Examen de-passage-developpement-informatiques-tsdi-2015-synthese-variante-2-o...
abdelghani042.7K vues
Les vecteurs seconde2020.pdf par rezgui10
Les vecteurs seconde2020.pdfLes vecteurs seconde2020.pdf
Les vecteurs seconde2020.pdf
rezgui1019 vues
Td serie a-abstract-cast-heritage par Amel Morchdi
Td serie a-abstract-cast-heritageTd serie a-abstract-cast-heritage
Td serie a-abstract-cast-heritage
Amel Morchdi833 vues
TP3 Atelier C++/ GL2 INSAT / Tunisie par Mariem ZAOUALI
TP3 Atelier C++/ GL2 INSAT / TunisieTP3 Atelier C++/ GL2 INSAT / Tunisie
TP3 Atelier C++/ GL2 INSAT / Tunisie
Mariem ZAOUALI754 vues
1 tdi synthese_principale_v2_2015.docx par khawla sdid
1 tdi synthese_principale_v2_2015.docx1 tdi synthese_principale_v2_2015.docx
1 tdi synthese_principale_v2_2015.docx
khawla sdid167 vues

Enrichissez vos-classes-avec-extends-20

  • 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/