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