[PDF] [PDF] Exercices dintroduction orientée objet en Java : personnes

Il est plus que conseillé de vous reporter au notes de cours qui vous ont été distrribuées ainsi qu'à l'aide sur les API Java Exercice 1 Classe Personne ( 



Previous PDF Next PDF





[PDF] Exercices en Java: 175 exercices corrigés - Couvre Java 8 (Noire

175 exercices corrigés pour maîtriser Java Conçu pour les étudiants en informatique, ce recueil d'exercices corrigés est le complément idéal de Programmer en 



[PDF] Exercices de Programmation Orientée Objet en Java - MIS

A quel affichage conduit l'exécution du programme (éventuellement corrigé)? class A extends Object{ int i; A(int i){ this i = i; } }



[PDF] TD : Compilation dexercices et dextraits dexamens

Fiche Exercices POO- JAVA UEO55 1 Licence MI 2011-2012 TD : Compilation d'exercices et d'extraits d'examens 1 Classes et visibilité a Parmi les appels 



[PDF] 1 Corrigé de Examen Programmation par les Objets en Java 1A Juin

Certaines corrections sont détaillées plus qu'il n'a été demandé Exercice 1) Un fichier Salut java contient le texte suivant class Salut { static public void main( 



[PDF] TD 1 et 2 Java : La prise en main de Java et Eclipse, Eléments du

http://java sun com/javase/6/download jsp#docs Exercice 3 : Etude détaillée d' une classe Durée : 1H Le programme suivant définit la classe Personne comme  



[PDF] Programmation Orientée Objet en Java (POO) - ReDCAD

Concept Objet du langage Java Classes et Objets en Java Programmation orientée objet avancée Java Les classes de bases Exercices et corrigés 



[PDF] Corrigés - Anne Tasso

Exercice I-2 : Observer et comprendre la structure d'un programme Java Corrigé import java util *; public class Premier { public static void main(String 



[PDF] Exercices dintroduction orientée objet en Java : personnes

Il est plus que conseillé de vous reporter au notes de cours qui vous ont été distrribuées ainsi qu'à l'aide sur les API Java Exercice 1 Classe Personne ( 



[PDF] Corrigés des premiers exercices sur les classes - Exercices corriges

Vous mettrez le code java correspondant à cette question dans la méthode main d'une nouvelle classe appelée TesteCompte Vous compilerez et testerez ce 

[PDF] exercices corrigés en recherche opérationnelle dualité

[PDF] exercices corrigés espérance conditionnelle

[PDF] exercices corrigés essais mécaniques

[PDF] exercices corrigés et illustrations en matlab et octave pdf

[PDF] exercices corrigés fiabilité des systèmes

[PDF] exercices corrigés fifo lifo cmup pdf

[PDF] exercices corrigés files d'attente

[PDF] exercices corrigés fiscalité

[PDF] exercices corrigés fiscalité sénégalaise

[PDF] exercices corrigés fonctions numériques terminale s pdf

[PDF] exercices corrigés forces de frottement

[PDF] exercices corrigés fractions

[PDF] exercices corrigés génétique humaine

[PDF] exercices corrigés génie chimique pdf

[PDF] exercices corrigés géométrie dans l'espace terminale s pdf

Exercices d"introduction orientée objet en Java : personnes, enseignants et étudiants

Université Paris SudPréambule

Cette suite d"exercices a pour but de passer en revue les notions orientées objet les plus simples du langage. La rédaction utilise volontairement le vocabulaire dédié. Il est

plus que conseillé de vous reporter au notes de cours qui vous ont été distrribuées ainsi

qu"à l"aide sur les API Java.

Exercice 1 Classe Personne (constructeurs)

Nous allons créer deux classes, l"une représentant une personne, nomméePersonne

et l"autre pour contenir le main, nomméePersonneMain.1.Constructeur exhaustif.a)Créer la classe nomméePersonneMain,publique(avec le mot clépublicde-

vantclass), ne comportant pas de champ et comportant une unique méthode main()de signature public static void main(String args[]) Au sein de cette méthode, créer, à l"aide de l"opérateurnewune instance d"ob- jet de typePersonne(voir la description de la classePersonneci-dessous) et appeler sa méthodeafficher(). On rappelle qu"un fichier source java peut contenir au plus une classe publique et que, si c"est le cas, le nom du fichier doit correspondre (y compris les majus-

cules/minuscules) au nom de la classe publique.b)Créer une classe, nomméePersonne,non publique(sans le mot clépublic

devantclass), contenant2champs :-un champnomde typeString, et-un champagede type primitifint. Créer un constructeur exhaustif (c.à.d. initialisant tous les champs), de signa- ture

Personne(String leNom, int lAge)

initialisant les deux champs de la classe àleNometlAge.1

2 Exercices d"introduction orientée objet en Java : personnes, enseignants et étudiants

c)Créer la méthodeafficher()de signature void afficher() qui affiche lenomet l"ageau format décrit ci-après. Pour un objet de type Personnedont la variable d"instancenomvaut"Coupdetrix"et la variable d"instanceagevaut25, la méthodeafficher()affichera à l"écran :

Nom : Coupdetrix

Age : 25 ansd)Tester ces classes en exécutantPersonneMain.2.Champ de type tableau; test de conformité d"un constructeur exhaustif.a)Ajouter un champ à la classePersonne, de type tableau de réels

double[] comptes; susceptibles de représenter les divers soldes des comptes en banque de la per- sonne. Adapter le constructeur exhaustif ainsi que la méthodeafficher() (qui doit afficher, outre le nom et l"age de la personne les différents éléments du tableaucomptes. Créer, au sein de la classePersonne, la méthodevoid diviserParDeux(), qui modifie le tableaucomptesen divisant chaque élé- ment par deux.b)Afin de tester que le constructeur exhaustif précédent est bien conforme à ce qu"il doit être, dans la classePersonneMain, créer deux objets de type Personne, de mêmenom, mêmeageet à partir dumême objetnombres comportant deux éléments. AppelerdiviserParDeux()sur le premier des objets de typePersonne. Appeler la méthodeafficher()de ces deux ob- jets. Le code utilisé sera par exemple le suivant : int[] mesNombres = new int[2]; mesNombres[0] = 100; mesNombres[1] = 92;

Personne sage = new Personne("Agecanonix", 80,

mesNombres);

Personne sageBis = new Personne("Agecanonix", 80,

mesNombres); sage.diviserParDeux(); sage.afficher(); sageBis.afficher(); Si l"affichage est identique pour les deux objets, le présent constructeur exhaus- tif, ainsi que celui que vous avez réalisé à la question précédente ne sont pas corrects. Les initialisations des champsnometnombresdoivent alors avoir été faites avec ce que l"on nomme de la copie superficielle (copie des références uniquement), alors qu"elles auraient dues être faites avec de la copie profonde

(copie du contenu des objets). Corriger le constructeur exhaustif si nécessaire.3.Constructeurs par défautetde recopie.

Par souci de simplicité, le champcomptesprécédent ne sera pas conservé. Son seul but était de faire prendre conscience de la nécessité des copies profondes au sein des constructeurs. Nous reprendrons également le constructeur exhaustif et la méthode

afficher()de la première question.a)Au sein de la classePersonne, créer un constructeur par défaut, de signature

Personne()

appelant le constructeur exhaustif de la question précédente au moyen du mot cléthis(voir l"utilisation dethis(...)comme appel de constructeur) et

Exercice 2 - Classes Enseignants et étudiants (Héritage) 3initialisant respectivement les champsnometageà"Asterix"et30. Si

l"évocation du mot cléthiscomme appel de constructeur ne vous semble pas parfaitement claire, reportez vous au polycopié, au chapitre des bases orien- tée objet de java, section "Classes, instance d"objet, héritage", sous section "constructeurs".b)Créer un constructeur de recopie, de signature

Personne(Personne p)

qui initialise les champs de la classe à ceux dep.c)Modifier la méthodemain()dePersonneMainen crééant3personnes, l"une

à l"aide du constructeur exhaustif, une autre avec le constructeur par défaut et la dernière avec le contructeur de recopie. Les afficher toutes les trois en appelant la méthodeafficher().

Exercice 2 Classes Enseignants et étudiants (Héritage)1.ClassesEnseignantetEtudiant.a)Créer une classeEnseignanthéritant dePersonneet ayant deux champs :-Un champnbHeuresCours, de type primitifint,-Un champgrincheux, de type primitifboolean.

Créer un constructeur exhaustif appelant le constructeur de la classe mère (celui dePersonne) parsuper(cet appel doit être la première ligne du constructeur d"Enseignant), puis initialisant ses champs propres (nbHeuresCourset grincheux).b)Créer de même une classeEtudianthéritant dePersonneet ayant deux champs :-Un champnoteMoyenne, de type primitifint,-Un champfaineant, de type primitifboolean. Créer un constructeur exhaustif appelant le constructeur de la classe mère (celui dePersonne) parsuper(cet appel doit être la première ligne du construc- teur d"Etudiant), puis initialisant ses champs propres (noteMoyenneet faineant).c)Créer une classeProfEleveMainne comportant pas de champ et comportant une unique méthodemain(). Au sein de cette méthode, créer une instance d"objet de typePersonne, denomégal à"Nimbus"et d"ageégal à45. Créer unEnseignant, de mêmenometage, ayantnbHeuresCourségal à

50etgrincheuxmis àtrue.

Créer unEtudiantde nom"Soupaloigonycrouton", d"ageégal à20, ayant2commenoteMoyenneetfaineantmis àtrue. Appeler la méthodeafficher()(qui est héritée dePersonne) de ces trois instances. On constate que les deux premières instances ont des affichages in- distinguables.2.Différentiation par le type. a)Créer un tableau de5éléments de typePersonnedans la méthodemain() de la classeProfEleveMain; initialiser ce tableau avec2instances d"objet de typeEnseignantet3instances de typeEtudiant. Effectuer une boucle forsur les éléments du tableau; dans le corps de la boucle, effectuer un appel

4 Exercices d"introduction orientée objet en Java : personnes, enseignants et étudiants

à la méthodeafficher(), puis afficher s"il s"agit d"unEtudiantou d"un Enseignanten se servant de l"opérateurinstanceof.

Exercice 3 Différents affichages (Surcharge et redéfinition)1.Surcharge delaméthodeafficher().

Dans la classePersonne, créer une méthodeafficher(), de signature void afficher(boolean compact) qui affiche selon l"un des formats suivants. Sicompactest égal àfalse, l"affichage est le même que celui de signaturevoid afficher()(la méthode de même nom décrite en question1cde l"Exercice 1). Sicompactest égal àtrue, l"affichage d"un objet denomégal àCoupdetrixet d"ageégal à25sera de la forme [Coupdetrix, 25]2.Redéfinition delaméthodeafficher(). Créer, au sein de la classeEnseignant(resp. au sein de la classeEtudiant) une méthode de signaturevoid afficher()qui appelle la méthodeafficher()de Personne(au moyen desuper) puis qui affiche la chaîne"Enseignant"(resp.

"Etudiant").3.Modifier la méthodemain()deProfEleveMainélaborée dans la question précé-

dente en ne conservant, dans le corps de la bouclefor, qu"un appel à la méthode afficher()sur les cinq éléments du tableau. Exercice 4 Délégation d"affichage (Classes abstraites) Supposons que la classePersonnefasse partie d"une biliothèque que vous distri- buez et que vous vouliez obliger les programmeurs qui conçoivent des classes héritant de Personne(tellesEnseignantetEtudiant) à munir ces dernières de certaines mé-

thodes.1.Rendre la classePersonneabstraite (par le mot cléabstractdevantclass).2.Déclarer une méthode abstraite, ne retournant rien (c"est-à-direvoid), sans argu-

ments, nomméeafficherType().3.La méthodeafficher()dePersonneva affectuer l"affichage décrit en question1cde l"Exercice 1, puis va faire appel àafficherType().4.Les classesEnseignantetEtudianthéritent de la classe abstraitePersonne

et ne sont pas abstraites. Leur constructeur doit donc faire appel à la méthode createPersonne()(puisqu"il n"y a plus de constructeur dePersonne). La méthodeafficherType()dans la classeEnseignant(resp. dans la classe Etudiant) n"effectue qu"une chose : afficher la chaîneEnseignant(resp. la chaîne Etudiant).5.Adapter les classesEnseignantetEtudiant. De cette manière, toute classe héritant dePersonnedoit nécessairement implanter la mé- thodeafficherType(). L"affichage estdéléguéaux sous types concrets dePersonne.quotesdbs_dbs14.pdfusesText_20