Un best-seller qui a déjà conquis plus de 50 000 étudiants !
Le livre de JAVA premier langage
Apprendre Java en douceur Vous avez décidé de vous initier à la programmation et souhaitez opter pour un langage largement utilisé dans le monde professionnel ? Java se révèle un choix idéal comme vous le constaterez dans ce livre conçu pour les vrais débutants en programmation.
Vous apprendrez d’abord, à travers des exemples simples en Java, à maîtri- ser les notions communes à tous les langages : variables, types de données, boucles et instructions conditionnelles, etc. Vous franchirez un nouveau pas en découvrant par la pratique les concepts de la programmation orientée objet (classes, objets, héritage), puis le fonctionnement des librairies gra- phiques AWT et Swing (fenêtres, gestion de la souris, tracé de graphiques). Cet ouvrage vous expliquera aussi comment réaliser des applications Java dotées d’interfaces graphiques conviviales grâce au logiciel libre NetBeans. Enfin, vous vous initierez au développement d’applications avec l’interface Android Studio.
Chaque chapitre est accompagné de deux types de travaux pratiques : des exercices, dont le corrigé est fourni sur l’extension web du livre, et un projet développé au fil de l’ouvrage, qui vous montrera comment combiner toutes les techniques de programmation étudiées pour construire une véritable ap- plication Java.
À qui s’adresse ce livre ? • Aux étudiants de 1er cycle universitaire (IUT, Deug...) ou d’écoles d’ingénieurs
• Aux vrais débutants en programmation : passionnés d’informatique et pro- grammeurs autodidactes, concepteurs de sites Web souhaitant aller au-delà de HTML et JavaScript, etc.
• Aux enseignants et formateurs recherchant une méthode pédagogique et
un support de cours pour enseigner Java à des débutants
Sur le site www.annetasso.fr/java • Consultez les corrigés du projet et des exercices
• Téléchargez le code source de tous les exemples du livre
• Dialoguez avec l’auteur
11e édition
Maître de conférences à l’université Paris-Est Marne-la-Vallée, Anne Tasso enseigne le langage Java en formation initiale et continue, au sein du département MMI (Métiers du Multimédia et de l’Internet) de l’IUT de Marne-la-Vallée. Son public universitaire est essentiellement constitué de débutants en programmation, ce qui lui a permis d’élaborer une méthode pédagogique structurée et imagée. Son objectif est d’expliquer, avec des mots simples, les techniques de programmation jusqu’à un niveau avancé.
Sommaire
Introduction. Qu’est-ce qu’un programme ? • Construire un algorithme • Premier programme en Java • Exécution du programme • Outils et techniques de base. Stocker une information • Données, variables et opérateurs • Entrées-sorties • Instructions et boucles • Initiation à la programmation orientée objet. De l’algorithme paramétré à l’écriture de fonctions • Classes et objets • Passage de paramètres par valeur et par référence • Héritage et polymorphisme • Interfaces • Programmation orientée objet et interfaces graphiques. Tableaux • Listes et dictionnaires • Archivage des données • Gestion des exceptions • Librairies AWT et Swing • Fenêtre, clavier et souris • Interface graphique avec NetBeans • Développer avec Android Studio.
29,90 E
Conception de couverture : © Jérémie Barlog / Studio Eyrolles © éditions Eyrolles
4 8 3 4 1 G
:
r u e t i d é e d o C
3 - 4 8 3 4 1 - 2 1 2 - 2 - 8 7 9 :
N B S
I
o s s a T .
A
n o i t i d é e 1 1
e g a g n a
l
i
r e m e r p
A V A J
e d
e r v
i l
e L
Anne Tasso
Le livre deJAVA
premier langage Avec 109 exercices corrigés
11e édition
Corrigé du projet et des exercices Code source des exemples du livre
G14384 | Le livre de Java premier langage_couv.indd 1
Publicité
04/03/2016 09:43
Un best-seller qui a déjà conquis plus de 50 000 étudiants !
Le livre de JAVA premier langage
Apprendre Java en douceur Vous avez décidé de vous initier à la programmation et souhaitez opter pour un langage largement utilisé dans le monde professionnel ? Java se révèle un choix idéal comme vous le constaterez dans ce livre conçu pour les vrais débutants en programmation.
Vous apprendrez d’abord, à travers des exemples simples en Java, à maîtri- ser les notions communes à tous les langages : variables, types de données, boucles et instructions conditionnelles, etc. Vous franchirez un nouveau pas en découvrant par la pratique les concepts de la programmation orientée objet (classes, objets, héritage), puis le fonctionnement des librairies gra- phiques AWT et Swing (fenêtres, gestion de la souris, tracé de graphiques). Cet ouvrage vous expliquera aussi comment réaliser des applications Java dotées d’interfaces graphiques conviviales grâce au logiciel libre NetBeans. Enfin, vous vous initierez au développement d’applications avec l’interface Android Studio.
Chaque chapitre est accompagné de deux types de travaux pratiques : des exercices, dont le corrigé est fourni sur l’extension web du livre, et un projet développé au fil de l’ouvrage, qui vous montrera comment combiner toutes les techniques de programmation étudiées pour construire une véritable ap- plication Java.
À qui s’adresse ce livre ? • Aux étudiants de 1er cycle universitaire (IUT, Deug...) ou d’écoles d’ingénieurs
• Aux vrais débutants en programmation : passionnés d’informatique et pro- grammeurs autodidactes, concepteurs de sites Web souhaitant aller au-delà de HTML et JavaScript, etc.
• Aux enseignants et formateurs recherchant une méthode pédagogique et
un support de cours pour enseigner Java à des débutants
Sur le site www.annetasso.fr/java • Consultez les corrigés du projet et des exercices
• Téléchargez le code source de tous les exemples du livre
• Dialoguez avec l’auteur
11e édition
Maître de conférences à l’université Paris-Est Marne-la-Vallée, Anne Tasso enseigne le langage Java en formation initiale et continue, au sein du département MMI (Métiers du Multimédia et de l’Internet) de l’IUT de Marne-la-Vallée. Son public universitaire est essentiellement constitué de débutants en programmation, ce qui lui a permis d’élaborer une méthode pédagogique structurée et imagée. Son objectif est d’expliquer, avec des mots simples, les techniques de programmation jusqu’à un niveau avancé.
Sommaire
Introduction. Qu’est-ce qu’un programme ? • Construire un algorithme • Premier programme en Java • Exécution du programme • Outils et techniques de base. Stocker une information • Données, variables et opérateurs • Entrées-sorties • Instructions et boucles • Initiation à la programmation orientée objet. De l’algorithme paramétré à l’écriture de fonctions • Classes et objets • Passage de paramètres par valeur et par référence • Héritage et polymorphisme • Interfaces • Programmation orientée objet et interfaces graphiques. Tableaux • Listes et dictionnaires • Archivage des données • Gestion des exceptions • Librairies AWT et Swing • Fenêtre, clavier et souris • Interface graphique avec NetBeans • Développer avec Android Studio.
o s s a T .
A
n o i t i d é e 1 1
e g a g n a
l
i
r e m e r p
A V A J e d
e r v i l
e L
Anne Tasso
Le livre deJAVA
premier langage Avec 109 exercices corrigés
11e édition
Corrigé du projet et des exercices Code source des exemples du livre
G14384 | Le livre de Java premier langage_couv.indd 1
04/03/2016 09:43
Le livre deJAVA
premier langage Avec 109 exercices corrigés
G14384 | Le livre de Java premier langage_PDT.indd 1
02/03/2016 12:01
CHEZ LE MÊME ÉDITEUR
Autres ouvrages sur Java
C. Delannoy. – Programmer en Java (9e édition). N°14007, 2014, 940 pages.
C. Delannoy. – Exercices en Java (4e édition). N°14009, 2014, 360 pages.
Publicité
C. Delannoy. – Programmer en Java (6e édition). Java 5 et 6. N°13443, 2012, 788 pages (format semi-poche).
J.-B. Boichat. – Apprendre Java et C++ en parallèle (4e édition). N°12403, 2008, 600 pages + CD-Rom.
A. Patricio. – Java Persistence et Hibernate. N°12259, 2008, 364 pages.
E. PuyBaret. – Bien programmer en Java 7. N°12794, 2012, 428 pages.
R. Fleury. – Les Cahiers du programmeur Java/XML. N°11316, 2004, 218 pages.
P. haggar. – Mieux programmer en Java. 68 astuces pour optimiser son code. N°9171, 2000, 256 pages.
J.-P. retaillé. – Refactoring des applications Java/J2EE. N°11577, 2005, 390 pages.
Autres ouvrages
C. Delannoy. – Programmer en Fortran. Fortran 90 et ses évolutions - Fortran 95, 2003 et 2008. N°14020, 2015, 454 pages.
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°14067, 2014, 382 pages.
G. Dowek et al. – Informatique et sciences du numérique. Manuel de spécialité ISN en terminale. N°13676, 2013, 354 pages.
G. Dowek et al. – Informatique pour tous en classes préparatoires aux grandes écoles. Manuel d’algorithmique et programmation structurée avec Python. N°13700, 2013, 408 pages.
Anne Tasso
Le livre deJAVA
premier langage Avec 109 exercices corrigés
11e édition
G14384 | Le livre de Java premier langage_PDT.indd 3
02/03/2016 12:01
ÉDITIONS EYROLLES 61, bd Saint-Germain 75240 Paris Cedex 05 www.editions-eyrolles.com
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. © Groupe Eyrolles, 2000-2016, ISBN : 978-2-212-14384-3
LivreTasso.book Page V Lundi, 15. février 2016 2:56 14
Avec cette onzième édition, je tiens à remercier tous mes nombreux lecteurs pour leurs félicitations qui me vont droit au cœur et leurs remarques toujours constructives.
Je remercie également tous mes étudiants, qui par leurs interrogations, leurs retours et leur curiosité m’ont permis d’écrire ce livre avec le souhait d’apporter des explications claires et précises.
Et enfin, un merci tout particulier à Antoine Derouin qui m’offre le temps de faire naître chaque livre avec beaucoup d’esprit, d’attention et de patience.
© Éditions Eyrolles
V
LivreTasso.book Page VI Lundi, 15. février 2016 2:56 14
LivreTasso.book Page VII Lundi, 15. février 2016 2:56 14
Table des matières
Avant-propos – Organisation de l’ouvrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
Introduction – Naissance d’un programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 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 38 La notion de variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Les noms de variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 La notion de type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Les types de base en Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Comment choisir un type de variable plutôt qu’un autre ? . . . . . . . . . . . . . . . . . . . . . 45 Déclarer une variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
© Éditions Eyrolles
VII
LivreTasso.book Page VIII Lundi, 15. février 2016 2:56 14
Le livre de Java premier langage
Table des matières
Publicité
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 69 La bibliothèque System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 L’affichage de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Affichage de la valeur d’une variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Affichage d’un commentaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Affichage de plusieurs variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Affichage de la valeur d’une expression arithmétique . . . . . . . . . . . . . . . . . . . . . . . . 73 Affichage d’un texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 La saisie de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 La classe Scanner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Comprendre les opérations de sortie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Comprendre les opérations d’entrée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Observer et comprendre la structure d’un programme Java . . . . . . . . . . . . . . . . . . . 84 Le projet : Gestion d’un compte bancaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Afficher le menu principal ainsi que ses options . . . . . . . . . . . . . . . . . . . . . . . . . . . .
VIII
© Éditions Eyrolles
LivreTasso.book Page IX Lundi, 15. février 2016 2:56 14
Table des matières
Le livre de Java premier langage
3 Faire des choix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 85 L’algorithme du café chaud, sucré ou non . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Définition des objets manipulés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Liste des opérations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Ordonner la liste des opérations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 L’instruction if-else . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 Syntaxe d’if-else . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Comment écrire une condition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Rechercher le plus grand de deux éléments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Deux erreurs à éviter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Des if-else imbriqués . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 L’instruction switch, ou comment faire des choix multiples . . . . . . . . . . . . . . . . . . 98 Construction du switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Calculer le nombre de jours d’un mois donné . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Comment choisir entre if-else et switch ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Comprendre les niveaux d’imbrication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Construire une arborescence de choix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Manipuler les choix multiples, gérer les caractères . . . . . . . . . . . . . . . . . . . . . . . . . . 106 Le projet : Gestion d’un compte bancaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Accéder à un menu suivant l’option choisie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
4 Faire des répétitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Combien de sucres dans votre café ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 La boucle do...while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Principes de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Un distributeur automatique de café . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 La boucle while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Principes de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Saisir un nombre entier au clavier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 La boucle for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 Syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 Principes de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 Rechercher le code Unicode d’un caractère de la table ASCII . . . . . . . . . . . . . . . . . 128 Quelle boucle choisir ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 Choisir entre une boucle do…while et une boucle while . . . . . . . . . . . . . . . . . . . . . . 131 Choisir entre la boucle for et while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 Comprendre la boucle do…while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
© Éditions Eyrolles
IX
LivreTasso.book Page X Lundi, 15. février 2016 2:56 14
Le livre de Java premier langage
Table des matières
Apprendre à compter, accumuler et rechercher une valeur . . . . . . . . . . . . . . . . . . . 135 Comprendre la boucle while, traduire une marche à suivre en programme Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 Comprendre la boucle for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 Le projet : Gestion d’un compte bancaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 Rendre le menu interactif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Partie II Initiation à la programmation orientée objet
5 De l’algorithme paramétré à l’écriture de fonctions . . . . . . . . . . . . . . . . . . . . . 141 Algorithme paramétré . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 Faire un thé chaud, ou comment remplacer le café par du thé . . . . . . . . . . . . . . . . . 142 Des fonctions Java prédéfinies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 La bibliothèque Math . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 Exemples d’utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 Principes de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 Construire ses propres fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 Appeler une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 Définir une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 Les fonctions au sein d’un programme Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 Comment placer plusieurs fonctions dans un programme . . . . . . . . . . . . . . . . . . . . 156 Les différentes formes d’une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 Apprendre à déterminer les paramètres d’un algorithme . . . . . . . . . . . . . . . . . . . . . 162 Comprendre l’utilisation des fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 Détecter des erreurs de compilation concernant les paramètres ou le résultat d’une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Écrire une fonction simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 Le projet : Gestion d’un compte bancaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 Définir une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 Appeler une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
6 Fonctions, notions avancées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 La structure d’un programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 La visibilité des variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 Variable locale à une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 Variable de classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 Quelques précisions sur les variables de classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
X
© Éditions Eyrolles
LivreTasso.book Page XI Lundi, 15. février 2016 2:56 14
Table des matières
Le livre de Java premier langage
Les fonctions communiquent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 Le passage de paramètres par valeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 Le résultat d’une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 Lorsqu’il y a plusieurs résultats à retourner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 Repérer les variables locales et les variables de classe . . . . . . . . . . . . . . . . . . . . . . 186 Communiquer des valeurs à l’appel d’une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . 187 Transmettre un résultat à la fonction appelante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 Le projet : Gestion d’un compte bancaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 Comprendre la visibilité des variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 Les limites du retour de résultat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
7
Les classes et les objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 La classe String, une approche de la notion d’objet . . . . . . . . . . . . . . . . . . . . . . . . 191 Manipuler des mots en programmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 Les différentes méthodes de la classe String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 Appliquer une méthode à un objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 Construire et utiliser ses propres classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 Définir une classe et un type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 Définir un objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 Manipuler un objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 Une application qui utilise des objets Cercle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 Utiliser les objets de la classe String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 Créer une classe d’objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 Consulter les variables d’instance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 Analyser les résultats d’une application objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 Le projet : Gestion d’un compte bancaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 Traiter les chaînes de caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 Définir le type Compte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 Construire l’application Projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 Définir le type LigneComptable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 Modifier le type Compte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 Modifier l’application Projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
8 Les principes du concept objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 La communication objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 Les données static . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 Le passage de paramètres par référence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
© Éditions Eyrolles
XI
LivreTasso.book Page XII Lundi, 15. février 2016 2:56 14
Le livre de Java premier langage
Table des matières
Les objets contrôlent leur fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 La notion d’encapsulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 La protection des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 Les méthodes d’accès aux données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 Les constructeurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 L’héritage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 La relation « est un » . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 Le constructeur d’une classe héritée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 La protection des données héritées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 Le polymorphisme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 Les interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 Qu’est-ce qu’une interface ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 Calculs géométriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 La protection des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 L’héritage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 Les interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 Le projet : Gestion d’un compte bancaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 Encapsuler les données d’un compte bancaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 Comprendre l’héritage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
Partie III Outils et techniques orientés objet
9 Collectionner un nombre fixe d’objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 Les tableaux à une dimension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 Déclarer un tableau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 Manipuler un tableau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 Quelques techniques utiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 La ligne de commande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 Trier un ensemble de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 Les tableaux à deux dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 Déclaration d’un tableau à deux dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 Accéder aux éléments d’un tableau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 Les tableaux à une dimension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 Les tableaux d’objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 Les tableaux à deux dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 Pour mieux comprendre le mécanisme des boucles imbriquées for–for . . . . . . . . . . 302
XII
© Éditions Eyrolles
LivreTasso.book Page XIII Lundi, 15. février 2016 2:56 14
Table des matières
Le livre de Java premier langage
Le projet : Gestion d’un compte bancaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 Traiter dix lignes comptables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
Publicité
10 Collectionner un nombre indéterminé d’objets . . . . . . . . . . . . . . . . . . . . . . . . . 305 La programmation dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 Les listes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 Les dictionnaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311 Les streams et les expressions lambda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 L’archivage de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 La notion de flux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 Les fichiers textes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 Les fichiers d’objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 Gérer les exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .