Exercices en JAVA

Programming, Java, Education · course

Voir tous les documents en programmation

Exercices en

JAVA

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 Java du même auteur ou de

tout autre ouvrage d’initiation au langage Java.

Cette quatrième édition prend en compte les nouveautés de Java 8 avec,

en particulier, un chapitre dédié aux expressions lambda et aux streams.

Les 175 exercices sont classés par thème en 18 chapitres. Chaque chapitre

débute par la liste des notions nécessaires à la résolution des exercices

(section Prérequis). Certains exercices portent sur une notion précise in-

diquée dans l’énoncé. D’autres, appelés exercices de synthèse, font appel

à la mise en œuvre de plusieurs notions étudiées dans les exercices ou

chapitres précédents, et nécessitent donc un eff ort de réfl exion plus fourni.

Chaque énoncé d’exercice est suivi d’une ou plusieurs solutions détaillées.

Leur code source est fourni sur le site www.editions-eyrolles.com.

À qui s’adresse ce livre ?

• Aux étudiants en cursus universitaire (DUT, licence, master, MIAGE), ainsi

qu’aux élèves des écoles d’ingénieurs.

• À tout programmeur ayant déjà une expérience de la programmation (Python,

PHP, C/C++…) et souhaitant s’initier au langage Java.

y

o

n

n

a

l

e

D

.

C

n

o

i

t

i

d

é

e

4

A

V

A

J

n

e

s

e

c

i

c

r

e

x

E

4e édition

Ingénieur informaticien au CNRS, Claude Delannoy

possède une grande pratique de la formation conti-

nue et de l’enseignement supérieur. Réputés pour la

qualité de leur démarche pédagogique, ses ouvrages

sur les langages et la programmation totalisent plus

de 500 000 exemplaires vendus.

Au sommaire

Les opérateurs et expressions (10 exercices) • Les ins-

tructions de contrôle : if, switch, for, while, do… while

(12 exercices) • Les classes et les objets Java (23 exer-

cices) • Les tableaux (14 exercices) • L’héritage et le

polymorphisme (14 exercices) • La classe String et les

chaînes de caractères (9 exercices) • Les types énumé-

rés (7 exercices) • La gestion des exceptions (10 exer-

cices) • Les bases de la programmation événementielle

(12 exercices) • Les principaux contrôles de Swing (9

exercices) • Les boîtes de dialogue (6 exercices) • Les

menus et les actions (7 exercices) • Les événements de

bas niveau : souris et clavier (8 exercices) • Les applets

Java (6 exercices) • Les fi chiers (5 exercices) • Les gé-

nériques (10 exercices) • Les collections (5 exercices)

• Les expressions lambda et les streams (9 exercices).

Annexes. Les constantes et fonctions mathématiques

• Les composants graphiques et leurs méthodes • Les

événements et leurs écouteurs • La classe Clavier.

19,90 €

Conception de couverture :

© Jérémie Barlog / Studio Eyrolles

© Éditions Eyrolles

5

8

3

7

6

G

:

r

u

e

t

i

d

é

e

d

o

C

2

-

5

8

3

7

6

-

2

1

2

-

2

-

8

7

9

:

N

B

S

I

Claude Delannoy

Exercices en

JAVA

175 exercices corrigés

9e édition

Couvre Java 8

4e édition

G67385_ExercicesrEnJava-EXE.indd 1

02/02/2017 10:49

Exercices en

JAVA

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 Java du même auteur ou de

tout autre ouvrage d’initiation au langage Java.

Cette quatrième édition prend en compte les nouveautés de Java 8 avec,

en particulier, un chapitre dédié aux expressions lambda et aux streams.

Les 175 exercices sont classés par thème en 18 chapitres. Chaque chapitre

débute par la liste des notions nécessaires à la résolution des exercices

(section Prérequis). Certains exercices portent sur une notion précise in-

diquée dans l’énoncé. D’autres, appelés exercices de synthèse, font appel

à la mise en œuvre de plusieurs notions étudiées dans les exercices ou

chapitres précédents, et nécessitent donc un eff ort de réfl exion plus fourni.

Chaque énoncé d’exercice est suivi d’une ou plusieurs solutions détaillées.

Leur code source est fourni sur le site www.editions-eyrolles.com.

À qui s’adresse ce livre ?

• Aux étudiants en cursus universitaire (DUT, licence, master, MIAGE), ainsi

qu’aux élèves des écoles d’ingénieurs.

• À tout programmeur ayant déjà une expérience de la programmation (Python,

PHP, C/C++…) et souhaitant s’initier au langage Java.

4e édition

Ingénieur informaticien au CNRS, Claude Delannoy

possède une grande pratique de la formation conti-

nue et de l’enseignement supérieur. Réputés pour la

qualité de leur démarche pédagogique, ses ouvrages

sur les langages et la programmation totalisent plus

de 500 000 exemplaires vendus.

Au sommaire

Les opérateurs et expressions (10 exercices) • Les ins-

tructions de contrôle : if, switch, for, while, do… while

(12 exercices) • Les classes et les objets Java (23 exer-

cices) • Les tableaux (14 exercices) • L’héritage et le

polymorphisme (14 exercices) • La classe String et les

chaînes de caractères (9 exercices) • Les types énumé-

rés (7 exercices) • La gestion des exceptions (10 exer-

cices) • Les bases de la programmation événementielle

(12 exercices) • Les principaux contrôles de Swing (9

exercices) • Les boîtes de dialogue (6 exercices) • Les

menus et les actions (7 exercices) • Les événements de

Publicité

bas niveau : souris et clavier (8 exercices) • Les applets

Java (6 exercices) • Les fi chiers (5 exercices) • Les gé-

nériques (10 exercices) • Les collections (5 exercices)

• Les expressions lambda et les streams (9 exercices).

Annexes. Les constantes et fonctions mathématiques

• Les composants graphiques et leurs méthodes • Les

événements et leurs écouteurs • La classe Clavier.

y

o

n

n

a

l

e

D

.

C

n

o

i

t

i

d

é

e

4

A

V

A

J

n

e

s

e

c

i

c

r

e

x

E

Conception de couverture :

© Jérémie Barlog / Studio Eyrolles

© Éditions Eyrolles

Code éditeur : G67385

ISBN : 978-2-212-67385-2

Claude Delannoy

Exercices en

JAVA

175 exercices corrigés

9e édition

Couvre Java 8

4e édition

G67385_ExercicesrEnJava-EXE.indd 1

02/02/2017 10:49

Claude Delannoy

Exercices en Java

4e édition

Troisième tirage 2017, avec nouvelle présentation

ÉDITIONS EYROLLES

61, bd Saint-Germain

75240 Paris Cedex 05

www.editions-eyrolles.com

AUX ÉDITIONS EYROLLES

Du même auteur

C. DELANNOY. – Programmer en Java. Java 5 à 8.

N°11889, 9e édition, 2014, 948 pages (réédition avec nouvelle présentation, 2016).

C. DELANNOY. – Programmer en langage C++.

N°14008, 8e édition, 2011, 820 pages.

C. DELANNOY. – Exercices en langage C++.

N°67387, 3e édition, 2007, 336 pages (réédition avec nouvelle présentation, 2016).

C. DELANNOY. – Le guide complet du langage C.

N°14012, 2014, 844 pages.

C. DELANNOY. – S’initier à la programmation et à l’orienté objet.

Avec des exemples en C, C++, C#, Python, Java et PHP.

N°11826, 2e édition, 2014, 360 pages.

En application de la loi du 11 mars 1957, il est interdit de reproduire intégralement ou partiellement le

présent ouvrage, sur quelque support que ce soit, sans l’autorisation de l’Éditeur ou du Centre Français d’exploitation

du droit de copie, 20, rue des Grands Augustins, 75006 Paris.

La quatrième édition du présent ouvrage est parue en 2014 sous l’ISBN 978-2-212-14009-5. À l’occasion de ce

troisième tirage, elle béné icie d’une nouvelle couverture. Le texte reste inchangé.

© Groupe Eyrolles, 2001-2014, pour le texte de la présente édition.

© Groupe Eyrolles, 2017, pour la nouvelle présentation. ISBN : 978-2-212-67385-2.

geneli~1.book Page V Lundi, 14. avril 2014 5:28 17

Table des matières

Table des matières

Avant-propos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

XIII

1.

Les opérateurs et les expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 1. Priorités des opérateurs arithmétiques et parenthèses . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 2. Conversions implicites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 3. Exceptions flottantes et conventions IEEE 754 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 4. Le type char . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 5. Opérateurs logiques à "court circuit" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 6. Priorités des opérateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 7. Affectation et conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 8. Opérateurs d’incrémentation, de décrémentation et d’affectation élargie . . . . . . . . . . . . .

Exercice 9. Opérateurs d’incrémentation et d’affectation élargie . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 10. Opérateur conditionnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.

Les instructions de contrôle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 11. Syntaxe de if et de switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 12. Rôle de l’instruction switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 13. Syntaxe des boucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 14. Comparaison entre for, while et do... while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 15. Rupture de séquence avec break et continue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 16. Boucle while, opérateurs d’affectation élargie et d’incrémentation (1) . . . . . . . . . . . . . .

Exercice 17. Boucle while, opérateurs d’affectation élargie et d’incrémentation (2) . . . . . . . . . . . . . .

Exercice 18. Syntaxe générale des trois parties d’une boucle for . . . . . . . . . . . . . . . . . . . . . . . . . . . .

© Éditions Eyrolles

1

2

2

4

5

6

7

7

8

9

10

13

14

15

16

17

18

19

20

20

III

geneli~1.book Page VI Lundi, 14. avril 2014 5:28 17

Table des matières

Exercice 19. Synthèse : calcul d’une suite de racines carrées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 20. Synthèse : calcul de la valeur d’une série . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 21. Synthèse : dessin d’un triangle en mode texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 22. Synthèse : calcul de combinaisons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.

Les classes et les objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 23. Création et utilisation d’une classe simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 24. Initialisation d’un objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 25. Champs constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 26. Affectation et comparaison d’objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 27. Méthodes d’accès aux champs privés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 28. Conversions d’arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 29. Champs et méthodes de classe (1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 30. Champs et méthodes de classe (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 31. Champs et méthodes de classe (3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 32. Bloc d’initialisation statique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 33. Surdéfinition de méthodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 34. Recherche d’une méthode surdéfinie (1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 35. Recherche d’une méthode surdéfinie (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 36. Recherche d’une méthode surdéfinie (3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 37. Surdéfinition et droits d’accès . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 38. Emploi de this . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 39. Récursivité des méthodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 40. Mode de transmission des arguments d’une méthode . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 41. Objets membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 42. Synthèse : repères cartésiens et polaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 43. Synthèse : modification de l’implémentation d’une classe . . . . . . . . . . . . . . . . . . . . . . .

Exercice 44. Synthèse : vecteurs à trois composantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 45. Synthèse : nombres sexagésimaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

23

24

25

27

28

29

30

30

31

32

Publicité

33

34

35

37

38

39

39

40

41

42

44

45

46

49

51

52

54

IV

© Éditions Eyrolles

geneli~1.book Page VII Lundi, 14. avril 2014 5:28 17

Table des matières

4.

Les tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 46. Déclaration et initialisation de tableau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 47. Utilisation usuelle d’un tableau (1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 48. Utilisation usuelle d’un tableau (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 49. Affectation de tableaux (1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 50. Affectation de tableaux (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 51. Affectation de tableaux (3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 52. Tableau en argument (1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 53. Tableau en argument (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 54. Tableau en valeur de retour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 55. Tableaux de tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 56. Synthèse : nombres aléatoires et histogramme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 57. Synthèse : calcul vectoriel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 58. Synthèse : utilitaires pour des tableaux de tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 59. Synthèse : crible d’Eratosthène . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5.

L’héritage et le polymorphisme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 60. Définition d’une classe dérivée, droits d’accès (1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 61. Définition d’une classe dérivée, droits d’accès (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 62. Héritage et appels de constructeurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 63. Redéfinition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 64. Construction et initialisation d’une classe dérivée . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 65. Dérivations successives et redéfinition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 66. Dérivations successives et surdéfinition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 67. Les bases du polymorphisme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 68. Polymorphisme et surdéfinition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 69. Les limites du polymorphisme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 70. Classe abstraite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 71. Classe abstraite et polymorphisme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 72. Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 73. Synthèse : comparaison entre héritage et objet membre . . . . . . . . . . . . . . . . . . . . . . . .

57

58

59

59

60

62

63

63

64

66

67

68

70

72

74

77

78

79

81

82

84

85

86

87

89

91

94

95

96

97

© Éditions Eyrolles

V

geneli~1.book Page VIII Lundi, 14. avril 2014 5:28 17

Table des matières

6.

La classe String et les chaînes de caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 74. Construction et affectation de chaînes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 75. Accès aux caractères d’une chaîne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 76. Conversion d’un entier en chaîne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 77. Comptage des voyelles d’un mot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 78. Arguments de la ligne de commande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 79. Redéfinition de toString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 80. Synthèse : conjugaison d’un verbe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 81. Synthèse : tri de mots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 82. Synthèse : gestion d’un répertoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7.

Les types énumérés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 83. Définition et utilisation d’un type énuméré simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 84. Itération sur les valeurs d’un type énuméré . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 85. Accès par leur rang aux valeurs d’un type énuméré (1) . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 86. Lecture de valeurs d’un type énuméré . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 87. Ajout de méthodes et de champs à une énumération (1) . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 88. Ajout de méthodes et de champs à une énumération (2) . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 89. Synthèse : gestion de résultats d’examens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8.

Les exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 90. Déclenchement et traitement d’une exception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 91. Transmission d’information au gestionnaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 92. Cheminement des exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 93. Cheminement des exceptions et choix du gestionnaire . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 94. Cheminement des exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 95. Instruction return dans un gestionnaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 96. Redéclenchement d’une exception et choix du gestionnaire . . . . . . . . . . . . . . . . . . . . .

Exercice 97. Bloc finally . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 98. Redéclenchement et finally . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 99. Synthèse : entiers naturels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

99

100

102

103

104

105

106

108

109

110

115

116

117

118

119

120

121

123

127

128

129

130

132

133

135

136

137

138

139

VI

© Éditions Eyrolles

geneli~1.book Page IX Lundi, 14. avril 2014 5:28 17

Table des matières

9.

Les bases de la programmation événementielle . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 100. Écouteurs de clics d’une fenêtre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 101. Écouteurs de clics de plusieurs fenêtres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 102. Écouteur commun à plusieurs fenêtres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 103. Création de boutons et choix d’un gestionnaire FlowLayout . . . . . . . . . . . . . . . . . . . .

Exercice 104. Gestion de plusieurs boutons d’une fenêtre avec un seul écouteur . . . . . . . . . . . . . . .

Exercice 105. Synthèse : création et suppression de boutons (1) . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 106. Synthèse : création et suppression de boutons (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 107. Dessin permanent dans une fenêtre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 108. Synthèse : dessin permanent et changement de couleur . . . . . . . . . . . . . . . . . . . . . . .

Exercice 109. Synthèse : dessin permanent, coloration et adaptation à la taille d’une fenêtre . . . . . .

Exercice 110. Dessin à la volée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 111. Synthèse : ardoise magique en couleur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10. Les principaux contrôles de Swing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 112. Cases à cocher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 113. Cases à cocher en nombre quelconque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 114. Boutons radio en nombre quelconque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 115. Champs de texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 116. Champ de texte et événements Action et Focus . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 117. Écoute permanente d’un champ de texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 118. Synthèse : série harmonique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Publicité

Exercice 119. Gestion d’une boîte de liste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 120. Synthèse : pendule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11. Les boîtes de dialogue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 121. Utilisation de boîtes de message et de confirmation . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 122. Utilisation de boîtes de message, de confirmation et de saisie . . . . . . . . . . . . . . . . . .

Exercice 123. Programmation d’une boîte de message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 124. Programmation d’une boîte de confirmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 125. Programmation d’une boîte de saisie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

© Éditions Eyrolles

143

144

148

151

152

154

157

160

163

164

166

168

170

173

174

176

178

180

182

184

186

188

190

195

196

197

199

202

204

VII

geneli~1.book Page X Lundi, 14. avril 2014 5:28 17

Table des matières

Exercice 126. Synthèse : saisie d’une heure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

206

12. Les menus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 127. Création d’un menu déroulant usuel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 128. Gestion des actions sur les options d’un menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 129. Activation, désactivation d’options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 130. Synthèse : calculs sur des rectangles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 131. Synthèse : coloration par boutons radio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 132. Synthèse : choix de couleur de fond et de forme par des menus composés . . . . . . . .

Exercice 133. Synthèse : choix de couleurs et de dimensions par des menus surgissants . . . . . . . .

13. Les événements de bas niveau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 134. Identification des boutons de la souris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 135. Vrais doubles-clics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 136. Suivi des déplacements de la souris (1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 137. Suivi des déplacements de la souris (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 138. Dessin par le clavier (1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 139. Synthèse : dessin par le clavier (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 140. Sélection d’un composant par le clavier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 141. Mise en évidence d’un composant sélectionné . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14. Les applets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 142. Comptage des arrêts d’une applet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 143. Dessin dans une applet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 144. Synthèse : dessin paramétré dans une applet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 145. Synthèse : tracé de courbe dans une applet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 146. Différences entre applet et application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15. Les flux et les fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 147. Création séquentielle d’un fichier binaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 148. Liste séquentielle d’un fichier binaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

209

210

213

216

220

223

226

229

233

234

235

237

240

242

244

246

248

251

252

253

256

258

261

263

264

267

VIII

© Éditions Eyrolles

geneli~1.book Page XI Lundi, 14. avril 2014 5:28 17

Table des matières

Exercice 149. Synthèse : consultation d’un répertoire en accès direct . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 150. Synthèse : liste d’un fichier texte avec numérotation des lignes . . . . . . . . . . . . . . . . . .

Exercice 151. Liste d’un répertoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16. La programmation générique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

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

Exercice 153. Classe générique à plusieurs paramètres de type . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 154. Conséquences de l’effacement (1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 155. Conséquences de l’effacement (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 156. Méthode générique à un argument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 157. Méthode générique et effacement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 158. Dérivation de classes génériques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 159. Les différentes sortes de relation d’héritage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 160. Limitations des paramètres de type d’une méthode . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 161. Redéfinition de la méthode compareTo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17. Les collections et les tables associatives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 162. Dépendance ou indépendance d’un itérateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 163. Manipulation d’un tableau de type ArrayList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 164. Tri d’une collection (1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 165. Tri d’une collection (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 166. Réalisation d’une liste triée en permanence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 167. Création d’un index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 168. Inversion d’un index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18. Les expressions lambda et les streams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 169. Lambda et interfaces prédéfinies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 170. Lambda et références . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 171. L’interface Comparator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 172. Les méthodes usuelles des streams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 173. Traitement de liste avec un stream . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

© Éditions Eyrolles

270

274

276

279

280

281

283

284

285

286

287

289

290

291

293

294

295

298

300

302

303

305

309

310

311

312

315

316

IX

geneli~1.book Page XII Lundi, 14. avril 2014 5:28 17

Exercice 174. Répertoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 175. Répertoire (bis) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 176. Reduce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 177. Collect et Collectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

A.

Les constantes et fonctions mathématiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

B.

Les composants graphiques et leurs méthodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 1. Les classes de composants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 2. Les méthodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

C.

Les événements et les écouteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 3. Les événements de bas niveau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 4. Les événements sémantiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercice 5. Les méthodes des événements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

D.

Publicité

La classe Clavier . . . . . . . . . . . . . . . . ....