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