[PDF] Corrigés 6 - Exercices sur lhéritage et les paquetages





Previous PDF Next PDF



Corrigés des exercices sur lhéritage

Corrigés des exercices sur l'héritage. Exercice 6.1.1 comptes bancaires. On reprend les classes de comptes bancaires du cours (chapitre 16) : CompteBancaire 



Cours 5 : lhéritage Solutions

Corrigé (2). ▫ Les classes Autruche et Lapin : class Autruche extends Animal ▫ Exercice 1. - Créez la classe Vehicule qui contient les données. ▫ private ...



Corrigés des exercices sur lhéritage (suite)

Corrigés des exercices sur l'héritage. (suite). Exercice 6.2.1 constructeurs. Question 1. Voici un programme qui illustre le comportement des constructeurs avec 



Exercices de Programmation Orientée Objet en Java

A quel affichage conduit l'exécution du programme (éventuellement corrigé)? class Test { int i;. Test(Test t) { if(t == null) this.i = 



TD 6 : héritage Algorithmie

Peut-on redéfinir une méthode de la classe mère ? 3. Exercice 2 class CPersonne. { protected: char * nom; char * adresse 



175 exercices corrigés - Couvre Java 8 (Noire) (French Edition)

while (12 exercices) • Les classes et les objets Java. (23 exercices) • Les tableaux (14 exercices) • L'héritage et le polymorphisme. (14 exercices) • La 



Le H muet ou aspiré exercices et corrigé web

héritage(m). 3. ........... huître(f). 13. ............ hibou(m). 23 ... CORRIGÉ. ○ Ajoutez le la ou l' devant les mots suivants. 1. le hachoir(m). 11. l ...



Lhéritage dans la modélisation conceptuelle de données

13‏/02‏/2017 Réaliser le modèle conceptuel UML de ce problème. Page 18. Exercice : L'Empire Galactique. 18. -.



Chapitre 15 - COURS et TP DE LANGAGE C++

Classe Fille. Héritage simple: Héritage multiple: La classe fille n'a pas accès VIII- CORRIGE DES EXERCICES. Exercice XV-3: Le projet se nomme exvii_3 et ...



Corrigés des exercices sur lhéritage

Corrigés des exercices sur l'héritage. Exercice 6.1.1 comptes bancaires. On reprend les classes de comptes bancaires du cours (chapitre 16) : CompteBancaire 



Corrigés des exercices sur lhéritage (suite)

Corrigés des exercices sur l'héritage. (suite). Exercice 6.2.1 constructeurs. Question 1. Voici un programme qui illustre le comportement des constructeurs 



Exercices sur lhéritage et les paquetages

2. EXERCICE SUR L'HÉRITAGE : EMPLOYÉS. CORRIGÉS 6. CORRIGÉS. } public String toString() { return nom+" ("+naissance + ")";. }.



175 exercices corrigés - Couvre Java 8 (Noire) (French Edition)

while (12 exercices) • Les classes et les objets Java. (23 exercices) • Les tableaux (14 exercices) • L'héritage et le polymorphisme. (14 exercices) • La classe 



Lhéritage dans la modélisation conceptuelle de données

13 févr. 2017 Exercice : Mariages. 1.2. Héritage. L'héritage est l'association entre deux classes permettant d'exprimer que l'une est plus générale que ...



Cours 5 : lhéritage Solutions

La classe Animal : class Animal. { protected int nbPattes;. Animal(int nb){//constructeur. setNbPattes(nb);. } //accesseur public int getNbPattes(){return 



Le H muet ou aspiré exercices et corrigé web

22. l'héritage(m). 3. l'huître(f). 13. le hibou(m). 23. la harpe(f). 4. le haricot(m). 14. l'harmonica(m). 24. la honte(f). 5. l'hélice(f). 15. le homard(m).



TD 3 & 4 Java : initiation à la notion de classe héritage

Exercice 3 : Héritage de classe et polymorphisme Java : initiation à la notion de classe héritage



Exercices en langage C++: 150 exercices corrigés (Noire) (French

Conversions de type définies par l'utilisateur (7 exercices) • Technique de l'héritage (7 exercices) • Héritage multiple (6 exercices) • Fonctions 



Corrigés des exercices sur les interfaces

Corrigés des exercices sur les interfaces. Exercice 5.1.1 Animaux. Certain animaux peuvent crier d'autres sont muets. On représentera le fait de crier au 

Corrigés 6 - Exercices sur lhéritage et les paquetages Corrigés 6Exercices sur l"héritage et les paquetages1 Exercice sur l"héritage : personnes On définit comme suit une classe de personnes : public classLaDate { private intjour; private intmois; private intannee; publicLaDate (intj,intm,inta){ this.jour=j; this.mois = m; this.annee = a; public intgetJour(){ returnjour; public intgetMois(){ returnmois; public intgetAnnee(){ returnannee; publicString toString() { returnjour+"/"+mois+"/"+annee; public classLaPersonne { protectedLaDate naissance; protectedString nom; publicLaPersonne(String name, LaDate naiss) { this. nom = name; this.naissance = naiss; publicLaDate getNaissance(){ returnnaissance; publicString getNom(){ returnnom; 1

2. EXERCICE SUR L"HÉRITAGE : EMPLOYÉS CORRIGÉS 6. CORRIGÉS

publicString toString() { returnnom+" ("+naissance + ")"; Pour certaines personnes, on connaît en plus le lieu de naissance, mais pas pour toutes.

Ecrire une sous-classe des personnes dont on connaît le lieude naissance. Redéfinir la méthode

toStringpour que le lieu de naissance soit dans la chaîne renvoyée. Ecrivez un petit programme qui utilise la nouvelle sous-classe. public classLaPersonneLieuNaissanceextendsLaPersonne { protectedString lieuNaissance; publicLaPersonneLieuNaissance(String name, LaDate naiss, String lieu) { super(name,naiss); lieuNaissance = lieu; publicString getLieuNaissance(){ returnlieuNaissance; publicString toString() { returnnom+" (né(e)le"+naissance + "à" + lieuNaissance + ")"; public classExoHeritage1{ public static voidmain(String[] args){

LaDate date =newLaDate(10,10,1970);

LaPersonneLieuNaissance lpln;

lpln =newLaPersonneLieuNaissance("Jeannot",date,"Toulon");

System.out.println(lpln);

2 Exercice sur l"héritage : employés

Une entreprise a un certain nombre d"employés. Unemployé est connu par son nom, son matricule

(qui l"identifie de façon unique) et son indice salairial. Lesalaire est calculé en multipliant cet indice

par une certaine valeur qui peut changer en cas d"augmentation générale des salaires, mais qui est la

même pour tous les employés.

Question 1

Écrivez la classe des employés avec les informations utileset des méthodes pour obtenir les ca-

ractéristiques d"un employé et pour calculer son salaire, ainsi que l"inévitable méthodetoString.

classEmploye{ protectedString nom; protected intmatricule; protected intindiceSalarial; protected static intvaleur = 12; publicEmploye(String n,intm,inti){

2Le CNAM - NFA032 - 2019

CORRIGÉS 6. CORRIGÉS 2. EXERCICE SUR L"HÉRITAGE : EMPLOYÉS nom = n; matricule = m; indiceSalarial = i; publicString getNom(){ returnnom; public intgetMatricule(){ returnmatricule; public intgetIndiceSalarial(){ returnindiceSalarial; public static intgetValeurIndice(){ returnvaleur; public voidsetIndiceSalarial(inti){ indiceSalarial = i; public static voidsetValeurIndice(intv){ valeur = v; public intcalculerSalaire(){ returnindiceSalarial *valeur; publicString toString(){ returnnom + " " + matricule + "" + indiceSalarial;

A noter que l"énoncé demande que la valeur de l"indice soit une variable statique (c"est la même

valeur pour tous les employés). De ce fait, les méthodes pouraccéder et modifier cette variable sont

également statiques.

Noter également qu"il n"y a pas de méthodes pour changer le nom et le matricule qui ne changent

pas, mais qu"il y en a pour changer l"indice et sa valeur car lesalaire d"un employé change au fil du

temps (on espère qu"il augmente, mais ce n"est pas sûr!).

Question 2

Les commerciaux ont un salaire composé d"un fixe et d"un intéressement proportionnel à leurs

ventes. Ecrivez une sous-classe des commerciaux qui contient l"information sur leurs ventes du dernier

mois, une méthode pour mettre à jour cette information et redéfinissez la méthode de calcul de leurs

salaires. classCommercialextendsEmploye{ protected intventesDuMois; protected intpourcentage; publicCommercial(String n,intm,inti,intp){ super(n,m,i); pourcentage = p; public intgetVentes(){

Le CNAM - NFA032 - 20193

2. EXERCICE SUR L"HÉRITAGE : EMPLOYÉS CORRIGÉS 6. CORRIGÉS

returnventesDuMois; public intgetPourcentage(){ returnpourcentage; public voidenregistreVentes(inti){ ventesDuMois = i; public intcalculerSalaire(){ return(indiceSalarial *valeur)+(ventesDuMois*pourcentage/100); publicString toString(){ returnnom + " " + matricule + "indicesalarial:" + indiceSalarial pourcentage:" + pourcentage + "ventesdumois:" + ventesDuMois;

Question 3

Il s"agit d"écrire une classe appeléePersonnelreprésentant le personnel d"une entreprise. Ce

personnel comporte plusieurs employés dont certains sont des commerciaux et d"autres pas. Cette classe aura les caractéristiques suivantes : — tous les employés seront enregistrés dans un unique attribut de typeArrayList. — à la construction de l"objet, il n"y aura aucun employé enregistré. — la classe contient deux méthodes pour ajouter et retirer unemployé.

— la classe contient une méthode qui calcule le montant totaldes salaires du personnel (la somme

des salaires des employés).

— la classe contient une méthodetoString

En ce qui concerne les types des méthodes, ils sont évidents (voir le code), sauf pour la méthode

retirer. La question qui se pose est : comment repérer l"objet à retirer de l"ArrayList. Nous avons choisi

ici de l"identifier par son matricule. Une autre solution acceptable est de donner l"objet lui-même.

importjava.util.ArrayList; public classPersonnel { privateArrayList liste; publicPersonnel() { liste =newArrayList(); public voidajouter(Employe emp) { if(emp!=null&& !liste.contains(emp)) liste.add(emp); public voidretirer(intmat) { intidx = 0; while(idx4Le CNAM - NFA032 - 2019 CORRIGÉS 6. CORRIGÉS 2. EXERCICE SUR L"HÉRITAGE : EMPLOYÉS public inttotalSalaires() { intres = 0; for(inti=0; iString res = ""; for(inti=0; iQuestion 4 Écrivez une nouvelle classe avec une méthodemainqui contiennent les éléments suivants : — la création de deux objets représentant des employés non commerciaux. — la création de deux objets représentant des commerciaux. — la création d"un objet instance de la classePersonnelqui contiennent les quatre employés créés. — le calcul et l"affichage du salaire total du personnel. public classMain { public static voidmain(String[] args) {

Employe e1, e2;

Commercial c1, c2;

Personnel pers;

e1 =newEmploye("Jean

Martin",101,75);

e2 =newEmploye("Paul

Dubois",107,105);

c1 =newCommercial("Raymond

Durand",121,75,8);

c2 =newCommercial("Gérard

Leroy",123,75,11);

c1.enregistreVentes(1500); c2.enregistreVentes(1300); pers =newPersonnel(); pers.ajouter(e1); pers.ajouter(e2); pers.ajouter(c1); pers.ajouter(c2);

System.out.println(pers);

System.out.println("------------");

System.out.println("salaire

de" + e1.getNom() + ":" + e1.calculerSalaire());

System.out.println("salaire

de" + e2.getNom() + ":" + e2.calculerSalaire());

System.out.println("salaire

de" + c1.getNom() + ":" + c1.calculerSalaire());

System.out.println("salaire

de" + c2.getNom() + ":" + c2.calculerSalaire());

Le CNAM - NFA032 - 20195

3. EXERCICE SUR LES PAQUETAGES CORRIGÉS 6. CORRIGÉS

System.out.println("------------");

System.out.println("total

salaires:" + pers.totalSalaires());

3 Exercice sur les paquetages

On donne le code de 4 classes appartenant à deux paquetages différents. Chacune des classes

contient 4 méthodes avec chacune un mode de visibilité différent (public, private, protected ou rien).

Dans l"une des classes, il y a une méthode main avec un appel à chaque méthode de chaque classe.

Dîtes lesquels de ces appels sont incorrects et pourquoi. Vous pouvez utiliser les numéros de ligne

pour les identifier. packagepackageA; public classClass1A{ public voidmethPublique(){

System.out.println("methPublique

deClass1A"); private voidmethPrivate(){

System.out.println("methPrivate

deClass1A"); protected voidmethProtected(){

System.out.println("methProtected

deClass1A"); voidmethRienDuTout(){

System.out.println("methRienDuTout

deClass1A"); packagepackageA; public classClass2A{ public voidmethPublique(){

System.out.println("methPublique

deClass2A"); private voidmethPrivate(){

System.out.println("methPrivate

deClass2A"); protected voidmethProtected(){

System.out.println("methProtected

deClass2A"); voidmethRienDuTout(){

System.out.println("methRienDuTout

deClass2A");

1packagepackageB;

2importpackageA.*;

3public classClass1BextendsClass1A{

4public voidmethPublique(){

5 System.out.println("methPublique

deClass1B");

6Le CNAM - NFA032 - 2019

CORRIGÉS 6. CORRIGÉS 3. EXERCICE SUR LES PAQUETAGES 6 }

7private voidmethPrivate(){

8 System.out.println("methPrivate

deClass1B"); 9 }

10protected voidmethProtected(){

11 System.out.println("methProtected

deClass1B"); 12 }

13voidmethRienDuTout(){

14 System.out.println("methRienDuTout

deClass1B"); 15 }

16public static voidmain(String[] args){

17 Class1A objet1A =newClass1A();

18 Class2A objet2A =newClass2A();

19 Class1B objet1B =newClass1B();

20 Class2B objet2B =newClass2B();

21 objet1A.methPublique();

22 objet1A.methPrivate();

23 objet1A.methProtected();

24 objet1A.methRienDuTout();

25 objet2A.methPublique();

26 objet2A.methPrivate();

27 objet2A.methProtected();

28 objet2A.methRienDuTout();

29 objet1B.methPublique();

30 objet1B.methPrivate();

31 objet1B.methProtected();

32 objet1B.methRienDuTout();

33 objet2B.methPublique();

34 objet2B.methPrivate();

35 objet2B.methProtected();

36 objet2B.methRienDuTout();

37 }
38 }
packagepackageB; public classClass2B{ public voidmethPublique(){

System.out.println("methPublique

deClass2B"); private voidmethPrivate(){

System.out.println("methPrivate

deClass2B"); protected voidmethProtected(){

System.out.println("methProtected

deClass2B"); voidmethRienDuTout(){

System.out.println("methRienDuTout

deClass2B"); Lorsqu"on compile ce programme, il y a 7 erreurs pour 16 appels de méthodes.

Reprenons un par un les appels.

—objet1A.methPublique();correct : une méthode public est utilisable partout.

Le CNAM - NFA032 - 20197

3. EXERCICE SUR LES PAQUETAGES CORRIGÉS 6. CORRIGÉS

—objet1A.methPrivate();erreur : la méthode private de la classe Class1A n"est pas utilisable dans une autre classe comme Class1B. —objet1A.methProtected();correct : la méthode protected de Class1A est utilisable dans la classe Class1B parce que cette dernière est une sous-classe de Class1A.Le compila- teur considère cet appel comme une erreur, contrairement aux explications couramment données sur le mode protected. —objet1A.methRienDuTout();erreur : une méthode sans précision d"accessibilité de la classe Class1A n"est utilisable que dans le paquetagepackageA. Or le main est dans une classe du paquetagepackageB. —objet2A.methPublique();correct : une méthode public est utilisable partout. —objet2A.methPrivate();erreur : la méthode private de la classe Class2A n"est pas utilisable dans une autre classe comme Class1B. —objet2A.methProtected();erreur : la méthode protected de Class2A n"est pas utili- sable dans Class1B qui n"est pas dans le même package et qui n"est pas une sous-classe de

Class2A.

—objet2A.methRienDuTout();erreur : une méthode sans précision d"accessibilité de la classe Class2A n"est utilisable que dans le paquetagepackageA. Or le main est dans une classe du paquetagepackageB. —objet1B.methPublique();correct : une méthode public est utilisable partout. —objet1B.methPrivate();correct : l"appel à la méthode private de la classe Class1B est permis dans le main qui est dans cette même classe Class1B. —objet1B.methProtected();correct :l"appel àlaméthode protected delaclasse Class1B est permis dans le main qui est dans cette même classe Class1B. —objet1B.methRienDuTout();correct : l"appel à la méthode sans précision d"accessi- bilité de la classe Class1B est permis dans le main qui est dans cette même classe Class1B, qui par définition est dans le même package qu"elle-même. —objet2B.methPublique();correct : une méthode public est utilisable partout. —objet2B.methPrivate();erreur : la méthode private de la classe Class2B n"est pas utilisable dans une autre classe comme Class1B. —objet2B.methProtected();correct :l"appel àlaméthode protected delaclasse Class2B estpermisdans lemainparce que celui-ci appartient aumêmepaquetage que laclasse Class2B. —objet2B.methRienDuTout();correct : l"appel à la méthode sans précision d"accessi- bilité de la classe Class2B est permis dans le main qui est dans cette même classe Class1B parce que ces deux classes sont dans le même paquetage.

8Le CNAM - NFA032 - 2019

quotesdbs_dbs29.pdfusesText_35
[PDF] Corrigés des exercices sur l héritage

[PDF] POO, Java - Ex 3 Héritage

[PDF] Exercices JavaScript - Cours EThirion - Free

[PDF] Séance d 'Exercices Dirigés HTML et JavaScript - Deptinfo - Cnam

[PDF] Apprendre ? s 'entraîner - Judo Canada

[PDF] CORRECTION DES EXERCICES SUR LA VITESSE DE LA LUMIERE

[PDF] DS : la Terre une planète habitable Partie 1 : Restituer des

[PDF] Bruits et Signaux» de l 'Ecole Doctorale d 'Astrophysique Énoncé et

[PDF] ORTHOGRAPHE Le pluriel des adjectifs Fiche d - Eklablog

[PDF] Chapitre 4 TD 3 Ions et pH Correction Exercice 1 Acide - Free

[PDF] Fiche d 'exercices 2 : Limites de fonctions - Physique et Maths

[PDF] Fonctions Logarithmes Exercices corrigés - Free

[PDF] Logarithme décimal

[PDF] La fonction logarithme népérien Activité d 'approche :

[PDF] Chapitre : PROBABILITES 1ere ES