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

'aide sur les API Java Exercice 1 Classe Personne (constructeurs) Nous allons créer deux 



Previous PDF Next PDF





Exercices de Programmation Orientée Objet en Java - MIS

e 1 8 : à quel affichage conduit l'exécution du programme suivant? class Truc{ String s; Truc(){ this 



Exercices en Java: 175 exercices corrigés - Couvre Java 8

rammation générique Exercice 152 Classe générique à un paramètre de type Exercice 153



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

e 1 : Objectifs : Prise en main d'Eclipse Durée 1H Ecrire en Java un programme qui édite sur la 



TD : Compilation dexercices et dextraits dexamens

xercices POO- JAVA UEO55 1 Licence MI Du point de vue programmation, un document est 



Exercices corrigés de programmation OO Java - Technologue pro

e 1 : On se propose de faire fonctionner un programme Java dont le rôle est d'afficher « Hello 



1 Corrigé de Examen Programmation par les Objets en Java

e 1) Un fichier Salut java contient le texte suivant class Salut { static public void main(String 



TP : Programmation objet avec Java Exercice 1

e 1 Considérons une classe Java appelée Point ayant les attributs suivants : • abs : un attribut 



Feuille 1 - Exercices de révision - LAMSADE

hmique et programmation java DEMIEE 2ème Année 2013-2014 Feuille 1 - Exercices de 



Exercices dintroduction orientée objet en Java : personnes

'aide sur les API Java Exercice 1 Classe Personne (constructeurs) Nous allons créer deux 

[PDF] exercice publipostage bac pro

[PDF] exercice rattrapage maths bac s

[PDF] exercice rattrapage maths es

[PDF] exercice rattrapage physique chimie bac s

[PDF] exercice rééducation écriture

[PDF] exercice relation de conjugaison 1ere s

[PDF] exercice revision bac sciences

[PDF] exercice science bac

[PDF] exercice secrétariat corrigé

[PDF] exercice solidworks 2015

[PDF] exercice spé maths terminale es graphe

[PDF] exercice statistique ? une variable corrigé

[PDF] exercice statistique bac pro avec corrigé

[PDF] exercice sur la lettre g

[PDF] exercice sur la première guerre mondiale 3eme

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_dbs10.pdfusesText_16