Avec 109 exercices corrigés Le livrede Java premier langage

publicité
Anne Tasso
Java
Le livre de
premier langage
10e édition
Avec 109 exercices corrigés
© Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2
LivreTasso.book Page VII Jeudi, 19. février 2015 9:42 09
Table des matières
Avant-propos – Organisation de l’ouvrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
Introduction – Naissance d’un programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
Construire un algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ne faire qu’une seule chose à la fois . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exemple : l’algorithme du café chaud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Vers une méthode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Passer de l’algorithme au programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Qu’est-ce qu’un ordinateur ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Un premier programme en Java, ou comment parler à un ordinateur . . . . . . . . . . . .
Exécuter un programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Compiler, ou traduire en langage machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Compiler un programme écrit en Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les environnements de développement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le projet : Gestion d’un compte bancaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cahier des charges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les objets manipulés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La liste des ordres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Apprendre à décomposer une tâche en sous-tâches distinctes . . . . . . . . . . . . . . . .
Observer et comprendre la structure d’un programme Java . . . . . . . . . . . . . . . . . . .
Écrire un premier programme Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
6
6
8
9
9
14
22
22
22
25
26
26
29
29
31
32
32
32
33
Partie I
Outils et techniques de base
1
Stocker une information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
La notion de variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les noms de variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La notion de type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les types de base en Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Comment choisir un type de variable plutôt qu’un autre ? . . . . . . . . . . . . . . . . . . . . .
Déclarer une variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
© Éditions Eyrolles
38
38
39
40
44
45
VII
LivreTasso.book Page VIII Jeudi, 19. février 2015 9:42 09
Le livre de Java premier langage
Table des matières
L’instruction d’affectation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Rôle et mécanisme de l’affectation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Déclaration et affectation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Quelques confusions à éviter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Échanger les valeurs de deux variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les opérateurs arithmétiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La priorité des opérateurs entre eux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le type d’une expression mathématique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La transformation de types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Calculer des statistiques sur des opérations bancaires . . . . . . . . . . . . . . . . . . . . .
Cahier des charges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le code source complet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Résultat de l’exécution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Repérer les instructions de déclaration, observer la syntaxe d’une instruction . . . . .
Comprendre le mécanisme de l’affectation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Comprendre le mécanisme d’échange de valeurs . . . . . . . . . . . . . . . . . . . . . . . . . .
Calculer des expressions mixtes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Comprendre le mécanisme du cast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le projet : Gestion d’un compte bancaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Déterminer les variables nécessaires au programme . . . . . . . . . . . . . . . . . . . . . . . .
47
47
48
50
51
52
52
53
54
56
59
59
62
62
63
64
64
64
65
66
66
67
67
2 Communiquer une information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
La bibliothèque System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
L’affichage de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Affichage de la valeur d’une variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Affichage d’un commentaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Affichage de plusieurs variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Affichage de la valeur d’une expression arithmétique . . . . . . . . . . . . . . . . . . . . . . . .
Affichage d’un texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La saisie de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La classe Scanner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Comprendre les opérations de sortie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Comprendre les opérations d’entrée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Observer et comprendre la structure d’un programme Java . . . . . . . . . . . . . . . . . . .
VIII
69
70
71
71
71
72
73
76
77
81
82
82
82
83
© Éditions Eyrolles
LivreTasso.book Page IX Jeudi, 19. février 2015 9:42 09
Table des matières
Le livre de Java premier langage
Le projet : Gestion d’un compte bancaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Afficher le menu principal ainsi que ses options . . . . . . . . . . . . . . . . . . . . . . . . . . . .
84
84
3 Faire des choix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
L’algorithme du café chaud, sucré ou non . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Définition des objets manipulés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Liste des opérations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ordonner la liste des opérations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
L’instruction if-else . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Syntaxe d’if-else . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Comment écrire une condition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Rechercher le plus grand de deux éléments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Deux erreurs à éviter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Des if-else imbriqués . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
L’instruction switch, ou comment faire des choix multiples . . . . . . . . . . . . . . . . . .
Construction du switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Calculer le nombre de jours d’un mois donné . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Comment choisir entre if-else et switch ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Comprendre les niveaux d’imbrication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Construire une arborescence de choix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Manipuler les choix multiples, gérer les caractères . . . . . . . . . . . . . . . . . . . . . . . . . .
Le projet : Gestion d’un compte bancaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Accéder à un menu suivant l’option choisie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
85
86
86
86
89
89
90
92
95
96
98
98
99
102
103
104
104
105
106
107
107
4 Faire des répétitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Combien de sucres dans votre café ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La boucle do...while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Principes de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Un distributeur automatique de café . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La boucle while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Principes de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Saisir un nombre entier au clavier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La boucle for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Principes de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Rechercher le code Unicode d’un caractère de la table ASCII . . . . . . . . . . . . . . . . .
© Éditions Eyrolles
110
111
112
112
112
119
119
119
120
127
127
128
128
IX
LivreTasso.book Page X Jeudi, 19. février 2015 9:42 09
Le livre de Java premier langage
Table des matières
Quelle boucle choisir ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Choisir entre une boucle do…while et une boucle while . . . . . . . . . . . . . . . . . . . . . .
Choisir entre la boucle for et while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Comprendre la boucle do…while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Apprendre à compter, accumuler et rechercher une valeur . . . . . . . . . . . . . . . . . . .
Comprendre la boucle while, traduire une marche à suivre
en programme Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Comprendre la boucle for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le projet : Gestion d’un compte bancaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Rendre le menu interactif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
131
131
132
132
134
134
135
135
136
137
137
Partie II
Initiation à la programmation orientée objet
5 De l’algorithme paramétré à l’écriture de fonctions . . . . . . . . . . . . . . . . . . . . . 141
Algorithme paramétré . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Faire un thé chaud, ou comment remplacer le café par du thé . . . . . . . . . . . . . . . . .
Des fonctions Java prédéfinies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La bibliothèque Math . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exemples d’utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Principes de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Construire ses propres fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Appeler une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Définir une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les fonctions au sein d’un programme Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Comment placer plusieurs fonctions dans un programme . . . . . . . . . . . . . . . . . . . .
Les différentes formes d’une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Apprendre à déterminer les paramètres d’un algorithme . . . . . . . . . . . . . . . . . . . . .
Comprendre l’utilisation des fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Détecter des erreurs de compilation concernant les paramètres
ou le résultat d’une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Écrire une fonction simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le projet : Gestion d’un compte bancaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Définir une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Appeler une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
X
142
142
144
144
146
147
149
150
151
156
156
158
161
162
162
162
163
164
166
166
166
© Éditions Eyrolles
LivreTasso.book Page XI Jeudi, 19. février 2015 9:42 09
Table des matières
Le livre de Java premier langage
6 Fonctions, notions avancées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
La structure d’un programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La visibilité des variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Variable locale à une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Variable de classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Quelques précisions sur les variables de classe . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les fonctions communiquent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le passage de paramètres par valeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le résultat d’une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Lorsqu’il y a plusieurs résultats à retourner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Repérer les variables locales et les variables de classe . . . . . . . . . . . . . . . . . . . . . .
Communiquer des valeurs à l’appel d’une fonction . . . . . . . . . . . . . . . . . . . . . . . . . .
Transmettre un résultat à la fonction appelante . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le projet : Gestion d’un compte bancaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Comprendre la visibilité des variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les limites du retour de résultat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
167
169
170
173
175
178
179
181
183
185
186
186
187
188
188
188
189
Les classes et les objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
La classe String, une approche de la notion d’objet . . . . . . . . . . . . . . . . . . . . . . . .
Manipuler des mots en programmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les différentes méthodes de la classe String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Appliquer une méthode à un objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Construire et utiliser ses propres classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Définir une classe et un type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Définir un objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Manipuler un objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Une application qui utilise des objets Cercle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Utiliser les objets de la classe String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Créer une classe d’objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Consulter les variables d’instance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Analyser les résultats d’une application objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le projet : Gestion d’un compte bancaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Traiter les chaînes de caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Définir le type Compte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Construire l’application Projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Définir le type LigneComptable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modifier le type Compte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modifier l’application Projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
© Éditions Eyrolles
191
192
194
203
205
205
209
211
212
216
217
217
218
218
218
221
221
221
222
222
222
223
XI
LivreTasso.book Page XII Jeudi, 19. février 2015 9:42 09
Le livre de Java premier langage
Table des matières
8 Les principes du concept objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
La communication objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les données static . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le passage de paramètres par référence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les objets contrôlent leur fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La notion d’encapsulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La protection des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les méthodes d’accès aux données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les constructeurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
L’héritage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La relation « est un » . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le constructeur d’une classe héritée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La protection des données héritées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le polymorphisme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Qu’est-ce qu’une interface ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Calculs géométriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La protection des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
L’héritage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le projet : Gestion d’un compte bancaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Encapsuler les données d’un compte bancaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Comprendre l’héritage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
226
226
229
234
235
235
237
243
246
246
248
250
250
252
252
254
257
258
258
260
263
264
264
266
Partie III
Outils et techniques orientés objet
9 Collectionner un nombre fixe d’objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
Les tableaux à une dimension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Déclarer un tableau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Manipuler un tableau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Quelques techniques utiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La ligne de commande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Trier un ensemble de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les tableaux à deux dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Déclaration d’un tableau à deux dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Accéder aux éléments d’un tableau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
XII
272
272
274
278
278
283
291
291
292
© Éditions Eyrolles
LivreTasso.book Page XIII Jeudi, 19. février 2015 9:42 09
Table des matières
Le livre de Java premier langage
Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les tableaux à une dimension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les tableaux d’objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les tableaux à deux dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Pour mieux comprendre le mécanisme des boucles imbriquées for–for . . . . . . . . . .
Le projet : Gestion d’un compte bancaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Traiter dix lignes comptables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
299
300
300
301
301
302
303
303
10 Collectionner un nombre indéterminé d’objets . . . . . . . . . . . . . . . . . . . . . . . . . 305
La programmation dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les listes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les dictionnaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les streams et les expressions lambda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
L’archivage de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La notion de flux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les fichiers textes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les fichiers d’objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Gérer les exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Comprendre les listes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Comprendre les dictionnaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Créer des fichiers textes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Créer des fichiers d’objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Gérer les erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le projet : Gestion d’un compte bancaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les comptes sous forme de dictionnaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La sauvegarde des comptes bancaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La mise en place des dates dans les lignes comptables . . . . . . . . . . . . . . . . . . . . . .
305
306
311
322
324
324
325
329
334
337
339
339
341
342
344
344
345
345
346
346
11 Dessiner des objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
La bibliothèque AWT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les fenêtres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le dessin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les éléments de communication graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les événements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les types d’événements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exemple : associer un bouton à une action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exemple : fermer une fenêtre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Quelques principes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
© Éditions Eyrolles
349
350
352
358
362
362
363
367
368
XIII
LivreTasso.book Page XIV Jeudi, 19. février 2015 9:42 09
Le livre de Java premier langage
Table des matières
De l’AWT à Swing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Un sapin en Swing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modifier le modèle de présentation de l’interface . . . . . . . . . . . . . . . . . . . . . . . . . . .
Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Comprendre les techniques d'affichage graphique . . . . . . . . . . . . . . . . . . . . . . . . . .
Apprendre à gérer les événements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le projet : Gestion d’un compte bancaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Calcul de statistiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
L'interface graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
368
369
372
379
380
380
381
385
385
386
12 Créer une interface graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
Un outil d’aide à la création d’interfaces graphiques . . . . . . . . . . . . . . . . . . . . . . . .
Qu’est qu’un EDI ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Une première application avec NetBeans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Gestion de bulletins de notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cahier des charges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Mise en place des éléments graphiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Définir le comportement des objets graphiques . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Un éditeur pour dessiner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cahier des charges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Créer une feuille de dessins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Créer une boîte à outils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Créer un menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
S’initier à NetBeans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le gestionnaire d’étudiants version 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
L’éditeur graphique version 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le projet : Gestion de comptes bancaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cahier des charges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Structure de l’application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Mise en place des éléments graphiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Définition des comportements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
389
390
400
410
411
413
420
433
434
435
445
451
455
455
455
457
461
463
463
465
467
470
13 Développer une application Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
Comment développer une application mobile ? . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bonjour le monde : votre première application mobile . . . . . . . . . . . . . . . . . . . . . . .
L’application Liste de courses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Publier une application Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tester votre application sur un mobile Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Déposer une application Android sur un serveur dédié . . . . . . . . . . . . . . . . . . . . . .
XIV
475
476
490
508
509
512
© Éditions Eyrolles
LivreTasso.book Page XV Jeudi, 19. février 2015 9:42 09
Table des matières
Le livre de Java premier langage
Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Comprendre la structure d’un projet Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La liste des courses – Version 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
523
525
525
527
Annexe – Guide d’installations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531
Extension Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le fichier corriges.pdf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
L’archive Sources.zip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le lien Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le lien NetBeans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Installation d’un environnement de développement . . . . . . . . . . . . . . . . . . . . . . . .
Installation de J2SE SDK 8 sous Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Installation de J2SE SDK 8 sous Mac OS X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Installation de J2SE SDK 8 sous Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Installation de NetBeans sous Windows 2000, NT, XP, Vista et 7 . . . . . . . . . . . . . . .
Installation de NetBeans sous Mac OS X 10.7 et supérieur . . . . . . . . . . . . . . . . . . .
Installation de NetBeans sous Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Utilisation des outils de développement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Installer la documentation en ligne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Développer en mode commande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Développer avec NetBeans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Développer des applications Android avec NetBeans . . . . . . . . . . . . . . . . . . . . . . . .
531
531
535
535
535
535
536
545
549
550
555
562
566
566
566
571
577
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591
© Éditions Eyrolles
XV
Téléchargement