13843903 java pour les nul

Upload: meryem-lagrari

Post on 10-Jul-2015

60 views

Category:

Documents


1 download

TRANSCRIPT

Programmation Java pour les enfants, les parents et les grands-parents

ii

Programmation JavaTM pour les enfants, les parents et les grands-parents

Yakov FainTraduit de langlais (amricain) par Vincent Lataye et Maxime Daniel ([email protected], [email protected])

Programmation Java pour les enfants, les parents et les grands-parents

iii

Programmation Java pour les enfants, les parents et les grands-parentsYakov FainCopyright 2004 Copyright 2005 pour la traduction franaise Smart Data Processing, Inc. 14 Molly Pitcher Dr. Manalapan, New Jersey, 07726, USA Tous droits rservs. Toute reproduction, mme partielle, par quelque procd et par qui que ce soit, est interdite sans autorisation crite pralable de lditeur. Couverture et illustrations : Rdacteur technique adulte : Rdacteur technique enfant : Yuri Fain Yuri Goncharov David Fain

Mai 2004 : Premire dition lectronique Juin 2005 : Premire dition lectronique en franaisLinformation contenue dans ce livre nest pas sujette garantie. Ni lauteur ni lditeur ne pourront tre tenus responsables des prjudices ou dommages de quelque nature que ce soit pouvant rsulter directement ou indirectement des instructions fournies dans ce livre ou de lutilisation des logiciels ou matriels informatiques qui y sont dcrits. Java et toutes les marques et logos drivs de Java sont des marques commerciales ou des marques dposes de Sun Microsystems, Inc. aux Etats-Unis et dans les autres pays. Windows 98, Windows NT, Windows 2000 et Windows XP sont des marques commerciales de Microsoft Corporation. Tous les autres noms de produits et de socits sont la proprit de leurs propritaires respectifs.

Lditeur met la version franaise de ce livre lectronique la disposition du public titre gracieux. Pour plus dinformation, crire [email protected]. ISBN: 0-9718439-4-5

Programmation Java pour les enfants, les parents et les grands-parents

iv

Table des matiresPREFACE .............................................................................................. IX REMERCIEMENTS ..................................................................................... XI CHAPITRE 1. TON PREMIER PROGRAMME JAVA........................................ 12Comment installer Java sur ton ordinateur............................................................................... 13 Les trois tapes principales de la programmation..................................................................... 17 Etape 1 Tape le programme..................................................................................................... 17 Etape 2 Compile le programme ............................................................................................... 19 Etape 3 Excute le programme................................................................................................ 20 Autres lectures .............................................................................................................................. 21

CHAPITRE 2. PASSAGE A ECLIPSE ............................................................. 22Installation dEclipse.................................................................................................................... 22 Dmarrer avec Eclipse ................................................................................................................. 26 Cration de programmes dans Eclipse ....................................................................................... 28 Excution de BonjourMonde dans Eclipse .............................................................................. 30 Comment fonctionne BonjourMonde ?.................................................................................... 31 Autres lectures .............................................................................................................................. 34 Exercices........................................................................................................................................ 34 Exercices pour les petits malins................................................................................................... 34

CHAPITRE 3. ANIMAUX FAMILIERS ET POISSONS CLASSES JAVA ........... 35Classes et Objets ........................................................................................................................... 35 Types de donnes.......................................................................................................................... 38 Cration dun animal familier..................................................................................................... 42 Hritage un Poisson est aussi un AnimalFamilier .................................................................. 47 Surcharge dune mthode............................................................................................................ 50 Autres lectures .............................................................................................................................. 52 Exercices........................................................................................................................................ 52 Exercices pour les petits malins................................................................................................... 53

CHAPITRE 4. BRIQUES DE BASE JAVA....................................................... 54

Programmation Java pour les enfants, les parents et les grands-parents

v

Commentaires de programme..................................................................................................... 54 Prises de dcisions l'aide de la clause if ................................................................................. 55 Oprateurs logiques ..................................................................................................................... 57 Oprateur conditionnel................................................................................................................ 58 Utilisation de else if ............................................................................................................... 58 Prises de dcisions l'aide de la clause switch ....................................................................... 60 Quelle est la dure de vie des variables ?.................................................................................... 61 Mthodes spciales : constructeurs............................................................................................. 62 Le mot-cl this ........................................................................................................................... 63 Tableaux........................................................................................................................................ 63 Rptition d'actions l'aide de boucles ...................................................................................... 65 Autres lectures .............................................................................................................................. 68 Exercices........................................................................................................................................ 68 Exercices pour les petits malins................................................................................................... 69

CHAPITRE 5. UNE CALCULATRICE GRAPHIQUE ........................................ 70AWT et Swing............................................................................................................................... 70 Paquetages et dclarations d'importation .................................................................................. 70 Principaux lments de Swing..................................................................................................... 71 Gestionnaires de disposition ........................................................................................................ 74 FlowLayout................................................................................................................................ 74 GridLayout................................................................................................................................ 75 BorderLayout ........................................................................................................................... 77 Combiner les gestionnaires de disposition ................................................................................. 77 BoxLayout .................................................................................................................................. 80 GridBagLayout......................................................................................................................... 81 CardLayout................................................................................................................................ 83 SpringLayout ........................................................................................................................... 84 Puis-je crer des fentres sans utiliser de gestionnaire de disposition ? ..................................... 84 Composants des fentres.............................................................................................................. 85 Autres lectures .............................................................................................................................. 88 Exercices........................................................................................................................................ 88

Programmation Java pour les enfants, les parents et les grands-parents

vi

Exercices pour les petits malins................................................................................................... 89

CHAPITRE 6. EVENEMENTS DE LA FENETRE........................................... 90Interfaces....................................................................................................................................... 91 Rcepteur d'vnements .............................................................................................................. 93 Enregistrement d'un ActionListener auprs d'un composant ............................................ 94 Quelle est la source d'un vnement ?........................................................................................ 95 Comment passer des donnes entre classes................................................................................ 97 Fin de la calculatrice .................................................................................................................... 99 Autres rcepteurs d'vnements ............................................................................................... 105 Utilisation des adapteurs............................................................................................................ 106 Autres lectures ............................................................................................................................ 107 Exercices...................................................................................................................................... 107 Exercices pour les petits malins................................................................................................. 107

CHAPITRE 7. L'APPLET MORPION ........................................................... 108Apprendre HTML en 15 minutes ............................................................................................. 109 Choix de la librairie AWT pour crire des applets ................................................................. 112 Comment crire des applets AWT............................................................................................ 113 Ecriture d'un jeu de morpion.................................................................................................... 115 Stratgie.................................................................................................................................... 115 Code ......................................................................................................................................... 116 Autres lectures ............................................................................................................................ 127 Exercices...................................................................................................................................... 127 Exercices pour les petits malins................................................................................................. 128

CHAPITRE 8. ERREURS ET EXCEPTIONS .................................................. 129Lecture de la trace de la pile...................................................................................................... 130 Arbre gnalogique des exceptions ........................................................................................... 131 Bloc try/catch........................................................................................................................ 132 Le mot-cl throws .................................................................................................................... 135 Le mot-cl finally................................................................................................................. 136 Le mot-cl throw ..................................................................................................................... 137 Cration de nouvelles exceptions .............................................................................................. 139

Programmation Java pour les enfants, les parents et les grands-parents

vii

Autres lectures ............................................................................................................................ 141 Exercices...................................................................................................................................... 141 Exercices pour les petits malins................................................................................................. 141

CHAPITRE 9. ENREGISTREMENT DU SCORE............................................ 142Flux d'octets ................................................................................................................................ 143 Flux tampon ............................................................................................................................. 145 Arguments de la ligne de commande ........................................................................................ 147 Lecture de fichiers texte............................................................................................................. 150 Classe File (fichier).................................................................................................................. 152 Autres lectures ............................................................................................................................ 155 Exercices...................................................................................................................................... 155 Exercices pour les petits malins................................................................................................. 156

CHAPITRE 10. AUTRES BRIQUES DE BASE JAVA...................................... 157Utilisation des valeurs de date et d'heure................................................................................. 157 Surcharge de mthode................................................................................................................ 159 Lecture des entres clavier ........................................................................................................ 161 Complments sur les paquetages Java...................................................................................... 163 Niveaux d'accs........................................................................................................................... 166 Retour sur les tableaux .............................................................................................................. 169 Classe ArrayList .................................................................................................................... 173 Autres lectures ............................................................................................................................ 177 Exercices...................................................................................................................................... 177 Exercices pour les petits malins................................................................................................. 177

CHAPITRE 11. RETOUR SUR LE GRAPHIQUE LE JEU DE PING-PONG..... 178Stratgie ...................................................................................................................................... 178 Code............................................................................................................................................. 179 Bases des fils d'excution Java .................................................................................................. 187 Fin du jeu de ping-pong ............................................................................................................. 192 Que lire d'autre sur la programmation de jeux ?.................................................................... 202

Programmation Java pour les enfants, les parents et les grands-parents

viii

Autres lectures ............................................................................................................................ 203 Exercices...................................................................................................................................... 203 Exercices pour les petits malins................................................................................................. 204

ANNEXE A. ARCHIVES JAVA - JARS ......................................................... 205Autres lectures ............................................................................................................................ 206

ANNEXE B. ASTUCES ECLIPSE ................................................................ 207Dbogueur Eclipse...................................................................................................................... 208

ANNEXE C. COMMENT PUBLIER UNE PAGE WEB ................................... 212Autres lectures ............................................................................................................................ 215 Exercices...................................................................................................................................... 215

INDEX.................................................................................................... 216

Programmation Java pour les enfants, les parents et les grands-parents

ix

PrfaceUn jour, mon fils Davey entra dans mon bureau tel un ouragan, mon didacticiel Java pour adultes la main. Il me demanda de lui apprendre programmer pour pouvoir crer des jeux informatiques. A cette poque, javais dj crit une paire de livres sur Java et donn de nombreux cours de programmation, mais ctait pour les grandes personnes ! Une recherche sur Amazon na rien donn dautre que des livres "pour les nuls", mais Davey nest pas un "nul" ! Aprs avoir pass des heures sur Google, je ne trouvai que de pauvres tentatives de cours de Java pour les enfants ou des livres trs superficiels. Sais-tu ce que jai fait ? Jai dcid den crire un. Pour maider comprendre la mentalit des plus jeunes, je dcidai de demander Davey de devenir mon premier tudiant enfant. Ce livre sera utile aux personnes suivantes :

Les jeunes de 11 18 ans. Les enseignants en informatique. Les parents souhaitant apprendre programmer leurs enfants. Tous ceux qui dbutent en programmation (lge na pas dimportance).

Mme si jemploie un langage simple pour expliquer la programmation, je mengage traiter mes lecteurs avec respect je ne vais pas crire quelque chose comme "Cher ami ! Tu es sur le point de commencer un nouveau et passionnant voyage". Bon, daccord ! Venons-en aux faits. Les premiers chapitres de ce livre aboutiront des programmes de jeu simples, avec les instructions dtailles pour les faire fonctionner. Nous allons aussi crer une calculatrice qui ressemble celle que tu as dans ton ordinateur. Dans la seconde partie du livre, nous crerons ensemble les programmes de jeu Morpion et Ping-Pong. Tu devras thabituer largot des programmeurs professionnels ; les mots importants sont crits dans cette police. Les programmes et les lments du langage Java sont crits dans une autre police, par exemple String. Ce livre ne couvre pas tous les lments du langage Java, sinon il serait trop gros et ennuyeux. Mais la fin de chaque chapitre, il y a une section Autres lectures avec des liens vers des sites web contenant des explications plus dtailles sur le sujet.

Programmation Java pour les enfants, les parents et les grands-parents

x

Tu trouveras aussi des devoirs la fin de chaque chapitre. Chaque lecteur doit faire les exercices de la section Exercices. Si ceux-ci sont trop faciles pour toi, je te mets au dfi de faire ceux de la section Exercices pour les petits malins. En fait, si tu lis ce livre, tu es une personne intelligente et tu devrais essayer de faire tous les exercices. Pour retirer le maximum de ce livre, lis-le du dbut la fin. Ne change pas de chapitre avant davoir compris celui que tu es en train de lire. Les ados, les parents et les grands-parents devraient pouvoir matriser ce livre sans aide extrieure, mais les enfants plus jeunes devraient lire ce livre avec laide dun adulte.

Programmation Java pour les enfants, les parents et les grands-parents

xi

Remerciements

Merci tous les architectes et dveloppeurs qui ont travaill gratuitement sur Eclipse lun des meilleurs environnements de dveloppement intgrs disponibles pour Java. Remerciements particuliers aux chauffeurs de bus de la socit New Jersey Transit pour la souplesse de leur conduite la moiti de ce livre a t crite dans le bus n 139, que je prenais pour aller au travail. Merci cette dame adorable, ma femme, Natasha, pour avoir fait tourner avec succs cette affaire quon appelle famille. Remerciements particuliers Yuri Goncharov un dveloppeur Java expert de Toronto, au Canada. Il a relu le livre, test chaque exemple de code et fourni un retour prcieux afin damliorer un peu ce livre.

Chapitre 1. Ton premier programme Java

langues. De la mme faon, on peut crire des programmes informatiques, tels que des jeux, calculatrices ou diteurs de texte, laide de diffrents langages de programmation. Sans programmes, ton ordinateur serait inutile et son cran serait toujours noir. Les lments de lordinateur constituent le matriel (hardware) 1 et les programmes le logiciel (software). Les langages informatiques les plus populaires sont Visual Basic, C++ et Java. Quest-ce qui fait de Java un langage diffrent de beaucoup dautres ? Premirement, le mme programme Java peut tourner (fonctionner) sur diffrents ordinateurs, tels que PC, Apple et autres, sans modification. En fait, les programmes Java ne savent mme pas o ils sexcutent, car ils le font lintrieur dune enveloppe logicielle spciale appele Machine Virtuelle Java, ou plus simplement Java. Si, par exemple, ton programme Java a besoin dimprimer des messages, il demande Java de le faire et Java sait comment se dbrouiller avec ton imprimante. Deuximement, Java permet de traduire facilement tes programmes (crans, menus et messages) en diffrentes langues. Troisimement, Java te permet de crer des composants logiciels (classes) 2 qui reprsentent les objets du monde rel. Par exemple, tu peux crer une classe Java nomme Voiture et lui donner des attributs tels que portes ou roues similaires ceux dune vraie voiture. Ensuite, partir de cette classe, tu peux crer une autre classe, parNDT : Langlais constituant la langue de rfrence dans le monde de linformatique en gnral et de la programmation en particulier, nous avons pris le parti de rappeler, entre parenthses, lquivalent anglais des principaux termes techniques lors de leur premire apparition dans le texte. 2 NDT : En franais : une classe, des classes. En anglais : a class, classes.1

L

es gens communiquent entre eux laide de diffrentes

Programmation Java pour les enfants, les parents et les grands-parents

13

exemple Ford, qui aura toutes les caractristiques de la classe Voiture et dautres que seules les Ford possdent. Quatrimement, Java est plus puissant que beaucoup dautres langages. Cinquimement, Java est gratuit ! Tu peux trouver sur Internet tout ce quil faut pour crer tes programmes Java sans dbourser un euro !

Comment installer Java sur ton ordinateurPour pouvoir programmer en Java, tu as besoin de tlcharger un logiciel spcial depuis le site web de la socit Sun Microsystems, qui a cr ce langage. Le nom complet de ce logiciel est Java 2 Software Development Kit (J2SDK). A lheure o jcris ces lignes, la dernire version disponible, 1.5.0, peut tre tlcharge depuis ce site : http://java.sun.com/j2se Slectionne la version (release) J2SE 1.5.0 ou la plus rcente dans la rubrique Downloads, puis sur la page de tlchargement clique sur le lien Download JDK. Accepte le contrat de licence et slectionne Windows Offline Installation ( moins que tu aies un ordinateur Macintosh, Linux ou Solaris). Dans lcran suivant, clique sur le bouton Enregistrer puis choisis le rpertoire de ton disque dur o tu souhaites enregistrer le fichier dinstallation Java.

Une fois le tlchargement termin, lance linstallation double-clique simplement sur le fichier que tu as tlcharg pour installer J2SDK sur ton disque. Par exemple, sur une machine Windows, le programme dinstallation crera un rpertoire comme celui-ci :

Programmation Java pour les enfants, les parents et les grands-parents

14

c:\Program Files\java\j2sdk1.5.0_03, o c: est le nom de ton disque dur.

Si tu nas pas assez de place sur ton disque c:, choisis-en un autre, sinon, contente-toi dappuyer sur les boutons Next, Install et Finish dans les fentres qui saffichent lcran. Linstallation de Java sur ton ordinateur ne prendra que quelques minutes. A ltape suivante de linstallation, tu dois dfinir deux variables systme. Dans Windows, par exemple, clique sur le bouton dmarrer et ouvre le Panneau de configuration (il peut tre cach derrire le menu Paramtres), puis double-clique sur licne Systme. Slectionne longlet Avanc et clique sur le bouton Variables denvironnement.

Programmation Java pour les enfants, les parents et les grands-parents

15

Voici quoi ressemble cet cran sur mon ordinateur Windows XP :

La fentre suivante prsente toutes les variables systme qui existent dj dans ton systme.

Programmation Java pour les enfants, les parents et les grands-parents

16

Clique sur le bouton Nouveau en bas de la fentre et dclare la variable Path qui permettra Windows (ou Unix) de trouver J2SDK sur ta machine. Vrifie bien le nom du rpertoire o tu as install Java. Si la variable Path existe dj, clique sur le bouton Modifier et ajoute le nom complet du rpertoire Java suivi dun point-virgule au tout dbut de la bote Valeur de la variable :

De mme, dclare la variable CLASSPATH en entrant comme valeur un point suivi dun point-virgule. Cette variable systme permettra Java de trouver tes programmes. Le point signifie que Java doit chercher tes programmes partir du rpertoire courant. Le point-virgule nest quun sparateur :

Programmation Java pour les enfants, les parents et les grands-parents

17

Linstallation de J2SDK est maintenant termine ! Si tu as un vieil ordinateur Windows 98, tu dois positionner les variables PATH et CLASSPATH dune autre manire. Trouve le fichier autoexec.bat sur ton disque c: et utilise le Bloc-notes ou un autre diteur de texte pour entrer les bonnes valeurs de ces variables la fin du fichier, comme ceci : SET CLASSPATH=.; SET PATH=c:\j2sdk1.5.0_03\bin;%PATH% Aprs avoir effectu cette modification, il faut redmarrer ton ordinateur.

Les trois tapes programmation

principales

de

la

Pour crer un programme Java qui marche, tu dois passer par les tapes suivantes : Ecrire le programme en Java et lenregistrer sur un disque. Compiler le programme pour le traduire en un code binaire spcial comprhensible par Java. Excuter le programme.

Etape 1 Tape le programmeTu peux utiliser nimporte quel diteur de texte pour crire des programmes Java, par exemple le Bloc-notes.

Programmation Java pour les enfants, les parents et les grands-parents

18

Tout dabord, tu dois taper le programme et lenregistrer dans un fichier texte dont le nom se termine par .java. Par exemple, si tu veux crire un programme appel BonjourMonde, entre son texte (on appelle a le code source) dans le Bloc-notes et enregistre-le dans un fichier que tu nommeras BonjourMonde.java. Ne mets pas de blancs dans les noms de fichiers Java. Voici le programme qui affiche les mots "Bonjour Monde" lcran :

public class BonjourMonde { public static void main(String[] args) { System.out.println("Bonjour Monde"); } }

Jexpliquerai comment fonctionne ce programme un peu plus tard dans ce chapitre, mais pour linstant fais-moi confiance ce programme affichera les mots "Bonjour Monde" ltape 3.

Programmation Java pour les enfants, les parents et les grands-parents

19

Etape 2 Compile le programmeMaintenant, tu dois compiler le programme. Tu vas utiliser le compilateur javac, qui est une partie de J2SDK. Disons que tu as enregistr ton programme dans le rpertoire c:\exercices. Slectionne les menus Dmarrer, Excuter, et entre le mot cmd pour ouvrir une fentre de commande. Juste pour vrifier que tu as positionn correctement les variables systme PATH et CLASSPATH, entre le mot set et jette un il leurs valeurs. Va dans le rpertoire c:\exercices et compile le programme : cd \exercices javac BonjourMonde.java Tu nes pas oblig de nommer le rpertoire exercices donne-lui le nom de ton choix. Sous Windows 98, slectionne Invite de commande MS DOS depuis le menu dmarrer pour ouvrir une fentre DOS. Le programme javac est le compilateur Java. Aucun message ne va te confirmer que ton programme BonjourMonde a bien t compil. Cest le cas typique du "Pas de nouvelles, bonnes nouvelles". Tape la commande dir et tu verras la liste de tous les fichiers de ton rpertoire. Tu devrais y trouver un nouveau fichier nomm BonjourMonde.class. Ca prouve que ton programme a bien t compil. Ton fichier dorigine, BonjourMonde.java, est l aussi, et tu pourras le modifier plus tard pour afficher "Bonjour Maman" ou autre chose. Sil y a des erreurs de syntaxe dans ton programme, par exemple si tu as oubli la dernire accolade fermante, le compilateur Java affichera

Programmation Java pour les enfants, les parents et les grands-parents

20

un message derreur. Il te faudra alors corriger lerreur et recompiler le programme. Sil y a plusieurs erreurs, tu peux avoir besoin de rpter ces actions plusieurs reprises avant dobtenir le fichier BonjourMonde.class.

Etape 3 Excute le programmeMaintenant, excutons le programme. Dans la mme fentre de commande, tape la commande suivante : java BonjourMonde As-tu remarqu que cette fois tu as utilis le programme java au lieu de javac ? Ce programme est appel Environnement dexcution Java (Java Run-time Environment ou JRE), ou plus simplement Java comme je lai fait jusquici.

Noublie jamais que Java fait la diffrence entre les lettres minuscules et majuscules. Par exemple, si tu as nomm le programme BonjourMonde, avec un B majuscule et un M majuscule, nessaie pas de lancer le programme bonjourmonde ou bonjourMonde Java se plaindrait. Maintenant amusons-nous un peu essaie de deviner comment modifier ce programme. Je texpliquerai comment fonctionne ce programme dans le prochain chapitre, mais tout de mme, essaie de deviner comment le modifier pour quil dise bonjour ton animal familier, ton ami ou quil affiche ton adresse. Suis les trois tapes pour voir si le programme fonctionne toujours aprs tes modifications . Dans le prochain chapitre, je vais te montrer comment crire, compiler et excuter tes programmes dans un environnement plus sympa quun diteur de texte et une fentre de commande.

Programmation Java pour les enfants, les parents et les grands-parents

21

Autres lecturesPour crer ta premire application : http://java.sun.com/docs/books/tutorial/getStarted/c upojava/win32.html Instructions dinstallation de Java pour Windows : http://java.sun.com/j2se/1.5.0/install-windows.html

Programmation Java pour les enfants, les parents et les grands-parents

22

Chapitre 2. Passage Eclipse

L

es programmeurs travaillent gnralement dans ce quon

appelle un Environnement de dveloppement intgr (Integrated Development Environment ou IDE). On peut y crire, compiler et excuter les programmes. Un IDE fournit aussi un utilitaire dAide qui dcrit tous les lments du langage et te permet de trouver et de corriger plus facilement les erreurs dans tes programmes. Alors que la plupart des IDE sont trs chers, il en existe un excellent, gratuit : Eclipse. Tu peux le tlcharger depuis le site web www.eclipse.org. Dans ce chapitre, je vais taider tlcharger et installer lenvironnement de dveloppement Eclipse sur ton ordinateur, puis y crer le projet Bonjour Monde. Ensuite, nous crerons tous nos programmes dans cet environnement. Familiarise-toi avec Eclipse cest un outil excellent, utilis par beaucoup de programmeurs Java.

Installation dEclipseOuvre la page web www.eclipse.org et clique sur le menu Download gauche. Slectionne ensuite la version dEclipse que tu souhaites tlcharger. Il y a gnralement la version officielle la plus rcente (latest release) et plusieurs versions intermdiaires stables (stable builds). Ces dernires peuvent avoir plus de fonctionnalits, mais elles peuvent encore avoir quelques dfauts mineurs. A lheure o jcris ces lignes, la dernire version officielle est la 3.0.2. Slectionne-la 3 pour obtenir la fentre suivante :

NDT : Attention : moins de prfrer travailler dans un environnement en anglais, il est prfrable dutiliser une version officielle, plutt quune version intermdiaire plus rcente qui peut ne pas encore tre supporte en franais. Lis aussi la note dinstallation au bas de la page 24.

3

Programmation Java pour les enfants, les parents et les grands-parents

23

Clique sur le lien de tlchargement correspondant ton systme et enregistre le fichier avec ce nom si long termin par .zip dans le rpertoire de ton choix sur ton disque. Tu nas plus qu dcompresser ce fichier sur ton disque. Si le programme WinZip est dj install sur ton ordinateur, clique sur le fichier avec le bouton droit de la souris et slectionne WinZip dans le menu contextuel, puis loption Extraire vers. Si tu as de la place sur ton disque c:, appuie sur le bouton Extraire, sinon slectionne un autre disque avec plus despace disponible.Les fichiers avec lextension .zip sont des archives contenant de nombreux fichiers compresss. Dcompresser le fichier signifie extraire le contenu de cette archive sur le disque. Le programme darchivage le plus populaire est WinZip. Tu peux en tlcharger une version dvaluation ladresse suivante :http://www.winzip.com/french.htm

Tu en auras besoin pour terminer linstallation dEclipse.

Programmation Java pour les enfants, les parents et les grands-parents

24

Linstallation dEclipse est termine 4 ! Pour que ce soit plus pratique pour toi, cre un raccourci vers Eclipse. Clique avec le bouton droit de la souris sur le bureau, puis clique sur Nouveau, Raccourci, Parcourir et slectionne le fichier eclipse.exe dans le rpertoire c:\eclipse. Pour lancer le programme, double-clique sur licne bleue dEclipse, et tu verras le premier cran de bienvenue (cet cran peut changer lgrement selon les versions dEclipse) :

NDT : La version de base dEclipse est en anglais. Pour que ton environnement (menus, aide en ligne, messages) soit en franais, il te faut installer quelques fichiers complmentaires. Sur la page web www.eclipse.org, clique sur le menu Download puis sur le lien Platform downloads de la rubrique Eclipse Project, puis sur Language Pack Translations. Dans la section SDK Language Pack, tlcharge le fichier .zip correspondant ton systme. Ensuite, dcompresse ce fichier lendroit o tu as dcompress Eclipse (par exemple c:\). Attention : cette extension nest pas forcment compatible avec les versions intermdiaires dEclipse.

4

Programmation Java pour les enfants, les parents et les grands-parents

25

Complte le nom du plan de travail dans la rubrique Espace de travail. Par exemple, c:\eclipse\plan de travail. Clique sur le bouton OK.

Clique sur la flche en haut droite pour afficher ton plan de travail, qui doit ressembler lcran suivant :

Programmation Java pour les enfants, les parents et les grands-parents

26

Dmarrer avec EclipseDans cette section, je vais te montrer comment crer et excuter rapidement des programmes Java dans Eclipse. Tu trouveras aussi un didacticiel sympa en passant par le menu Aide, Table des matires de l'aide, puis Dveloppement Java Guide de l'utilisateur. Pour commencer travailler sur un programme, tu dois crer un nouveau projet. Un projet simple comme notre BonjourMonde ne contiendra quun fichier BonjourMonde.java. Mais trs vite nous allons crer des projets plus labors qui contiendront plusieurs fichiers. Pour crer un nouveau projet dans Eclipse, clique simplement sur les menus Fichier, Nouveau, Projet, Projet Java, et clique sur le bouton Suivant dans la fentre Nouveau projet. Tu dois maintenant entrer le nom de ton nouveau projet, par exemple Mon Premier Projet :

Programmation Java pour les enfants, les parents et les grands-parents

27

Regarde la bote grise nomme Rpertoire. Elle tindique o seront enregistrs les fichiers de ce projet. Eclipse utilise un rpertoire spcial appel plan de travail (workspace), o seront stocks tous les fichiers de tes projets. Plus tard, tu creras des projets distincts pour une calculatrice, un jeu de morpion et dautres programmes. Il y aura plusieurs projets dans le plan de travail avant la fin de ce livre. Un plan de travail Eclipse contient plusieurs aires plus petites, appeles perspectives, qui constituent diffrentes vues de tes projets. Si Eclipse te le demande, accepte de passer en perspective Java.

Programmation Java pour les enfants, les parents et les grands-parents

28

Si tu cliques sur le petit signe plus devant Mon Premier Projet, tu verras plus de dtails. Pour linstant, il doit y avoir la ligne Bibliothque systme JRE (jdk1.5.0_03), qui constitue une partie du projet. Si ce nest pas le cas, clique sur les menus Fentre, Prfrences, Java, JRE installs, Ajouter, puis, laide du bouton Parcourir, trouve le rpertoire o tu as install Java, par exemple c:\Program Files\java\j2sdk1.5.0_03.

Cration de programmes dans EclipseRecrons dans Eclipse le programme BonjourMonde du chapitre 1. Les programmes Java sont des classes qui reprsentent des objets de la vie relle. Tu vas en apprendre un peu plus sur les classes dans le prochain chapitre. Pour crer une classe dans Eclipse, slectionne les menus Fichier, Nouveau, Classe et saisis BonjourMonde dans le champ Nom. Ensuite, dans la section Quels raccords de mthodes voulez-vous crer ?, coche la case :public static void main(String[] args)

Programmation Java pour les enfants, les parents et les grands-parents

29

Clique sur le bouton Fin et tu verras que Eclipse a cr pour toi la classe BonjourMonde. Des commentaires de programme (le texte entre /* et */) ont t gnrs et placs en haut - tu devrais les modifier pour dcrire ta classe. A la suite des commentaires, tu trouveras le code de la classe BonjourMonde avec une mthode (method) main() vide. Le mot mthode signifie action. Pour excuter une classe Java comme un programme, cette classe doit possder une mthode nomme main().public class BonjourMonde { public static void main(String[] args) { } }

Pour terminer notre programme, place le curseur aprs laccolade de la ligne qui contient main, appuie sur la touche Entre et tape la ligne suivante :

Programmation Java pour les enfants, les parents et les grands-parents

30

System.out.println("Bonjour Monde");

Pour enregistrer le programme sur le disque et le compiler, appuie simultanment sur deux touches de ton clavier : Ctrl-S. Si tu nas pas fait derreur de syntaxe, tu ne verras aucun message le programme est compil. Mais faisons une erreur volontairement pour voir ce qui va arriver. Supprime la dernire accolade et appuie nouveau sur Ctrl-S. Eclipse affiche alors Erreur de syntaxe dans la vue des Erreurs et affiche une marque rouge au dbut de la ligne qui pose problme. Lorsque tes projets sont plus importants, ils contiennent plusieurs fichiers et le compilateur peut gnrer plus dune erreur. Tu peux rapidement trouver (mais pas corriger) les lignes problmatiques en double-cliquant sur le message derreur dans la vue des erreurs. Remettons laccolade et appuyons nouveau sur Ctrl-S voil, le message derreur a disparu !

Excution de BonjourMonde dans EclipseNotre petit programme est un projet constitu dune seule classe. Mais bientt tes projets contiendront plusieurs classes Java. Cest pourquoi, avant dexcuter un projet pour la premire fois, tu dois dire Eclipse quelle est la classe principale de ce projet. Slectionne le menu Excuter, puis Excuter.... Assure-toi que la ligne Application Java est bien slectionne dans le coin en haut gauche, puis clique sur Crer. Eclipse initialise pour toi les noms du projet et de la classe principale :

Programmation Java pour les enfants, les parents et les grands-parents

31

Appuie maintenant sur le bouton Excuter pour lancer le programme. Les mots "Bonjour Monde" seront affichs dans la vue Console comme ils ltaient au chapitre 1. Tu peux dsormais excuter ce projet en passant par les menus Excuter, Excuter le dernier lancement ou en appuyant sur les touches Ctrl-F11 du clavier.

Comment fonctionne BonjourMonde ?Voyons ce qui se passe rellement dans le programme BonjourMonde. La classe BonjourMonde ne possde quune mthode main(), qui est le point dentre dune application (programme) Java. On peut dire que main est une mthode parce quil y a des parenthses aprs le mot main. Les mthodes peuvent appeler (call), cest--dire utiliser, dautres mthodes. Par exemple, notre mthode main() appelle la mthode println() pour afficher le texte "Bonjour Monde" lcran. Toutes les mthodes commencent par une ligne de dclaration appele signature de la mthode :public static void main(String[] args)

Programmation Java pour les enfants, les parents et les grands-parents

32

Cette signature nous donne les informations suivantes : Qui a accs la mthode - public. Le mot-cl public signifie que la mthode main() peut tre utilise par nimporte quelle autre classe Java ou par Java lui-mme. Comment utiliser la mthode - static. Le mot-cl static signifie quil nest pas ncessaire de crer une instance (une copie) de lobjet BonjourMonde en mmoire pour pouvoir utiliser cette mthode. Nous reviendrons sur les instances de classe dans le prochain chapitre. La mthode retourne-t-elle des donnes ? Le mot-cl void signifie que la mthode main() ne retourne aucune donne au programme appelant, qui en loccurrence est Eclipse. Mais si on prenait lexemple dune mthode effectuant des calculs, celle-ci pourrait retourner un rsultat son appelant. Le nom de la mthode est main. La liste des arguments des donnes qui peuvent tre fournies la mthode String[] args. Dans la mthode main(), String[] args signifie que la mthode peut recevoir un tableau (array) de chanes de caractres (String) qui reprsentent du texte. Les valeurs qui sont passes la mthode sont appeles arguments. Comme je lai dj dit, un programme peut tre constitu de plusieurs classes, mais lune dentre elles possde la mthode main(). Les classes Java ont en gnral plusieurs mthodes. Par exemple, une classe Jeu pourrait avoir les mthodes dmarrerJeu(), arrterJeu(), lireScore() et ainsi de suite. Le corps de notre mthode main()ne contient quune ligne :System.out.println("Bonjour Monde");

Chaque instruction ou appel de mthode doit se terminer par un pointvirgule ;. La mthode println()sait comment afficher des donnes sur la console systme (fentre de commande). Les noms de mthodes Java sont toujours suivis par des parenthses. Sil ny a rien entre les parenthses, cela signifie que la mthode ne prend pas darguments. Lexpression System.out signifie que la variable out est dfinie lintrieur de la classe System fournie avec Java. Comment es-tu sens savoir quil existe quelque chose nomm out dans la classe System ?

Programmation Java pour les enfants, les parents et les grands-parents

33

Eclipse va ty aider. Ds que tu as tap le mot System suivi dun point, Eclipse te propose automatiquement tout ce qui est disponible dans cette classe. Et tout moment tu peux placer le curseur aprs le point et appuyer sur Ctrl-Espace pour afficher une fentre daide de ce genre :

Lexpression out.println() indique que la variable out reprsente un objet et que ce "quelque chose nomm out" possde une mthode nomme println(). Le point entre la classe et le nom de la mthode signifie que la mthode existe lintrieur de la classe. Mettons que tu aies une classe JeuPingPong qui possde la mthode sauverScore(). Voil comment tu peux appeler cette mthode pour Dave qui a gagn trois parties : Encore une fois, les donnes entre les parenthses sont appeles arguments, ou paramtres. Ces paramtres sont fournis une mthode pour tre utiliss dans un traitement, par exemple pour enregistrer des donnes sur le disque. La mthode sauverScore() a deux arguments la chane de caractres "Dave" et le nombre 3. Eclipse rend amusante lcriture des programmes Java. Lannexe B prsente quelques trucs et astuces utiles pour booster ta programmation Java dans cet excellent environnement de dveloppement.JeuPingPong.sauverScore("Dave", 3);

Programmation Java pour les enfants, les parents et les grands-parents

34

Autres lecturesSite web Eclipse :http://www.eclipse.org

ExercicesModifie la classe BonjourMonde pour quelle affiche ton adresse, en utilisant plusieurs appels la mthode println().

Exercices pour les petits malinsModifie la classe BonjourMonde pour afficher le mot Bonjour comme ceci :

Programmation Java pour les enfants, les parents et les grands-parents

35

Chapitre 3. Animaux familiers et poissons Classes Java

reprsentent des objets du monde rel. Mme si chaque personne crit des programmes sa faon, presque tout le monde est daccord pour reconnatre que la meilleure faon de le faire est demployer le style dit orient objet. Cela signifie que les bons programmeurs commencent par dcider quels objets doivent tre inclus dans le programme et quelles classes Java vont les reprsenter. Ce nest quune fois cette tape mene bien quils commencent crire du code Java.

L

es

programmes

Java

sont

constitus

de

classes

qui

Classes et Objets

Les classes Java peuvent possder des mthodes et des attributs. Les mthodes dfinissent les actions quune classe peut effectuer. Les attributs dcrivent la classe.

Crons et discutons une classe nomme JeuVido. Cette classe peut avoir plusieurs mthodes, qui reprsentent les actions que les objets de cette classe peuvent effectuer : dmarrer le jeu, larrter, enregistrer le score, etc. Cette classe peut aussi possder des attributs ou proprits : prix, couleur de lcran, nombre de tlcommandes et autres.

Programmation Java pour les enfants, les parents et les grands-parents

36

En langage Java, cette classe pourrait ressembler ceci :class JeuVido { String couleur; int prix; void dmarrer () { } void arrter () { } void sauverScore(String nomJoueur, int score) { } }

Notre classe JeuVido est sans doute similaire aux autres classes qui reprsentent des jeux vido ceux-ci ont tous des crans de taille et de couleur diffrentes, effectuent des actions similaires et cotent de largent. Nous pouvons tre plus spcifiques et crer une autre classe Java, nomme GameBoyAdvance. Elle appartient aussi la famille des jeux vido, mais possde certaines proprits spcifiques au modle GameBoy Advance, par exemple un type de cartouche.class GameBoyAdvance { String typeCartouche; int largeurEcran; void dmarrerJeu() { } void arrterJeu() { } }

Programmation Java pour les enfants, les parents et les grands-parents

37

Dans cet exemple, la classe GameBoyAdvance dfinit deux attributs typeCartouche et largeurEcran et deux mthodes dmarrerJeu et arrterJeu. Mais, pour linstant, ces mthodes ne peuvent effectuer aucune action, parce quil ny a pas de code Java entre leurs accolades. Aprs le mot classe, tu dois maintenant thabituer la nouvelle signification du mot objet. La phrase "crer une instance dun objet" signifie crer une copie de cet objet dans la mmoire de lordinateur en respectant la dfinition de sa classe.

Un plan de fabrication de la GameBoy Advance correspond une console relle de la mme faon quune classe Java correspond lune de ses instances en mmoire. Le processus de fabrication des consoles relles daprs ce plan est similaire au processus de cration dinstances dobjets GameBoyAdvance en Java.

La plupart du temps, un programme ne pourra utiliser une classe Java quaprs quune instance en ait t cre. De mme, les fabricants

Programmation Java pour les enfants, les parents et les grands-parents

38

crent des milliers de copies dune console de jeu partir dune mme description. Bien que ces copies reprsentent la mme classe, leurs attributs peuvent avoir des valeurs diffrentes certaines sont bleues alors que dautres sont argentes, et ainsi de suite. En dautres termes, un programme peut crer de multiples instances dobjets GameBoyAdvance.

Types de donnesLes variables Java peuvent reprsenter les attributs dune classe, les arguments dune mthode ou tre utilises lintrieur dune mthode pour stocker temporairement certaines donnes. Les variables doivent tre dclares avant de pouvoir tre utilises. Te souviens-tu dquations telles que y = x + 2 ? En Java, tu dois dclarer les variables x et y en prcisant quelles appartiennent un type de donnes numrique tel que int ou double :int x; int y;

Les deux lignes suivantes montrent comment tu peux affecter une valeur ces variables. Si ton programme donne la valeur 5 la variable x, la variable y sera gale 7 :x = 5; y = x + 2;

En Java, tu peux aussi changer la valeur dune variable dune faon assez inhabituelle. Les deux lignes suivantes modifient la valeur de la variable y, qui passe de 5 6 :int y = 5; y++;

Bien quil y ait deux signes plus, Java va tout de mme incrmenter la valeur de la variable y de 1. Aprs le fragment de code suivant, la valeur de la variable monScore est aussi 6 :int monScore = 5; monScore = monScore + 1;

On peut utiliser de la mme manire la multiplication, la division et la soustraction. Regarde lextrait de code suivant :int monScore = 10; monScore--; monScore = monScore * 2;

Programmation Java pour les enfants, les parents et les grands-parents monScore = monScore / 3; System.out.println("Mon score est " + monScore);

39

Quimprime ce code ? Eclipse a une fonctionnalit bien pratique appele page de testeur de code, qui permet de tester rapidement nimporte quel bout de code (comme le prcdent) sans mme crer une classe. Slectionne le menu Fichier, Nouveau, Autre, puis Java, Excution/Dbogage Java, Page de testeur de code et entre le mot Test comme nom de ta page. Entre maintenant dans la page ces cinq lignes de code utilisant monScore, slectionne-les et clique sur la petite flche verte accompagne dun J dans la barre doutils.

Pour voir le rsultat des calculs, clique simplement sur longlet Console en bas de lcran :Mon score est 6

Dans cet exemple, largument de la mthode println() a t fabriqu en accolant deux morceaux le texte "Mon score est " et la valeur de la variable monScore, cest--dire 6. On appelle concatnation la cration dune chane de caractres (String) partir de morceaux. Bien que monScore soit un nombre, Java est suffisamment malin pour convertir cette variable en String puis laccoler au texte "Mon score est ". Voyons dautres faons de modifier les valeurs des variables : monScore = monScore * 2; est quivalent monScore *= 2;

Programmation Java pour les enfants, les parents et les grands-parents

40

monScore = monScore + 2; est quivalent monScore += 2; monScore = monScore - 2; est quivalent monScore -= 2; monScore = monScore / 2; est quivalent monScore /= 2; Il y a huit types de donnes simples, ou primaires en Java, et tu dois dcider lequel utiliser en fonction du type et de la taille des donnes que tu as lintention de stocker dans chaque variable : Quatre types de donnes pour les valeurs entires byte, short, int et long. Deux types de donnes pour les valeurs dcimales float et double. Un type de donnes qui permet de stocker un caractre isol char. Un type de donnes logique nomm boolean qui autorise seulement deux valeurs : true (vrai) ou false (faux). On peut affecter une valeur initiale une variable lors de sa dclaration. On parle alors dinitialisation de la variable :char niveau = 'E'; int chaises = 12; boolean sonActif = false; double revenuNational = 23863494965745.78; float prixJeu = 12.50f; long totalVoitures = 4637283648392l;

Dans les deux dernires lignes, f signifie float et l signifie long. Si tu ninitialises pas les variables, Java le fera pour toi en donnant la valeur 0 chaque variable numrique, la valeur false aux variables de type boolean et le code spcial \u0000 aux variables de type char. Il y a aussi le mot-cl spcial final ; sil est utilis dans la dclaration dune variable, on ne peut affecter de valeur cette variable quune fois, cette valeur ne pouvant plus tre modifie par la suite. Dans certains langages, les variables invariantes sont appeles constantes. En Java les noms des variables invariantes sont gnralement crits en lettres majuscules :final String CAPITALE_ETAT = "Washington";

Outre les types de donnes primaires, on peut aussi utiliser les classes Java pour dclarer des variables. A chaque type de donnes primaire correspond une classe enveloppe, par exemple Integer, Double,

Programmation Java pour les enfants, les parents et les grands-parents

41

Boolean, etc. Ces classes possdent des mthodes utiles pour convertir les donnes dun type un autre. Alors que le type de donnes char est utilis pour stocker un caractre isol, Java a aussi une classe String permettant de manipuler un texte plus long, par exemple :String nom = "Dupont";

En Java, les noms de variables ne peuvent pas commencer par un chiffre ni contenir despaces.

Un bit est le plus petit bout de donne que lon puisse stocker en mmoire. Il contient soit 1, soit 0. Un octet (byte) est compos de huit bits. En Java, un char occupe deux octets en mmoire. En Java, un int ou un float occupe quatre octets. Les variables de type long ou double utilisent huit octets. Les types de donnes numriques qui utilisent plus doctets peuvent stocker de plus grands nombres. 1 kilooctet (KO) correspond 1024 octets. 1 mgaoctet (MO) correspond 1024 kilooctets. 1 gigaoctet (GO) correspond 1024 mgaoctets.

Programmation Java pour les enfants, les parents et les grands-parents

42

Cration dun animal familierNous allons concevoir et crer une classe AnimalFamilier. Tout dabord, nous devons dcider quelles actions notre animal familier sera capable deffectuer. Que dirais-tu de manger, dormir et dire ? Nous allons programmer ces actions dans les mthodes de la classe AnimalFamilier. Nous allons aussi donner notre animal les attributs suivants : ge, taille, poids et couleur. Commenons par crer une nouvelle classe Java nomme AnimalFamilier dans Mon Premier Projet comme dcrit dans le chapitre 2, mais sans cocher la case de cration de la mthode main().

Ton cran devrait ressembler ceci :

Nous sommes maintenant prts dclarer les attributs et les mthodes de la classe AnimalFamilier. Le corps des mthodes et des classes Java est dlimit par des accolades. A chaque accolade ouvrante doit correspondre une accolade fermante :class AnimalFamilier { }

Pour dclarer les variables constituant les attributs de la classe, nous devons choisir leur type. Prenons par exemple le type int pour lge, float pour la taille et le poids et String pour la couleur.

Programmation Java pour les enfants, les parents et les grands-parents

43

class AnimalFamilier { int ge; float poids; float taille; String couleur; }

Ltape suivante consiste ajouter des mthodes notre classe. Avant de dclarer une mthode, il faut dcider si elle prend des arguments et si elle retourne une valeur : La mthode dormir() ne fera quafficher le message "Bonne nuit, demain" elle na pas besoin darguments et ne retourne aucune valeur. Il en est de mme pour la mthode manger(). Elle ne fera quafficher le message "Jai si faim Donne-moi un biscuit !". La mthode dire() affichera aussi un message, mais lanimal pourra "dire" (afficher) le mot ou la phrase que nous lui fournirons. Nous passerons ce mot la mthode dire() comme un argument de mthode. La mthode construira une phrase en utilisant cet argument et la retournera au programme appelant. La nouvelle version de la classe AnimalFamilier ressemble ceci :public class AnimalFamilier { int ge; float poids; float taille; String couleur; public void dormir() { System.out.println("Bonne nuit, demain"); } public void manger() { System.out.println( "Jai si faim Donne-moi un biscuit !"); } public String dire(String unMot) { String rponseAnimal = "OK !! OK !! " + unMot; return rponseAnimal; } }

Programmation Java pour les enfants, les parents et les grands-parents

44

Cette classe reprsente une sympathique crature du monde rel :

Voyons maintenant la signature de la mthode dormir():public void dormir()

Elle nous indique que cette mthode peut tre appele depuis nimporte quelle autre classe Java (public) et quelle ne retourne aucune donne (void). Les parenthses vides signifient que cette mthode ne prend pas dargument, parce quelle na besoin daucune donne du monde extrieur elle affiche toujours le mme texte. La signature de la mthode dire() est celle-ci :public String dire(String unMot)

Cette mthode peut aussi tre appele depuis nimporte quelle autre classe Java, mais elle doit retourner un texte, ce quindique le mot-cl String devant le nom de la mthode. Par ailleurs, elle attend une donne textuelle de lextrieur, do largument String unMot.

Programmation Java pour les enfants, les parents et les grands-parents

45

Comment dcider si une mthode doit retourner une valeur ou pas ? Si une mthode manipule des donnes et doit fournir le rsultat de ces manipulations une classe appelante, elle doit retourner une valeur. Tu vas me dire que notre classe AnimalFamilier na aucune classe appelante ! Cest exact, alors crons-en une, que nous appellerons MatreAnimal. Cette classe aura une mthode main() contenant le code ncessaire pour communiquer avec la classe AnimalFamilier. Cre simplement une autre classe nomme MatreAnimal, mais cette fois slectionne dans Eclipse loption qui cre la mthode main(). Rappelle-toi, sans cette mthode il est impossible dexcuter cette classe en tant que programme. Modifie le code gnr par Eclipse pour obtenir ceci :public class MatreAnimal { public static void main(String[] args) { String ractionAnimal; AnimalFamilier monAnimal = new AnimalFamilier(); monAnimal.manger(); ractionAnimal = monAnimal.dire("Cui !! Cui !!"); System.out.println(ractionAnimal); monAnimal.dormir(); } }

Noublie pas dappuyer sur Ctrl-S pour enregistrer et compiler cette classe ! Pour excuter la classe MatreAnimal, slectionne le menu Eclipse Excuter, Excuter, Crer et tape le nom de la classe principale : MatreAnimal. Appuie sur le bouton Excuter et le programme affichera le texte suivant :Jai si faim Donne-moi un biscuit ! OK !! OK !! Cui !! Cui !! Bonne nuit, demain

La classe MatreAnimal est la classe appelante ; elle commence par crer une instance de lobjet AnimalFamilier. Elle dclare une variable monAnimal et utilise loprateur Java new :AnimalFamilier monAnimal = new AnimalFamilier();

Cette ligne dclare une variable du type AnimalFamilier (cest exact, tu peux considrer chaque classe que tu cres comme un nouveau type Java). Maintenant, la variable monAnimal sait o a t cre linstance dAnimalFamilier dans la mmoire de lordinateur,

Programmation Java pour les enfants, les parents et les grands-parents

46

et tu peux utiliser cette variable pour appeler nimporte laquelle des mthodes de la classe AnimalFamilier, par exemple :monAnimal.dormir();

Si une mthode retourne une valeur, tu dois lappeler dune autre faon. Dclare une variable du mme type que la valeur retourne par la mthode. Tu peux maintenant appeler cette mthode :String ractionAnimal; ractionAnimal = monAnimal.dire("Cui !! Cui !!");

A ce stade, la valeur retourne est stocke dans la variable ractionAnimal et si tu veux voir ce quelle contient, ne te gne pas :System.out.println(ractionAnimal);

Programmation Java pour les enfants, les parents et les grands-parents

47

Hritage un AnimalFamilier

Poisson

est

aussi

un

Notre classe AnimalFamilier va nous aider dcouvrir un autre concept important de Java, appel hritage. Dans la vie relle, chaque personne hrite des caractristiques de lun ou lautre de ses parents. De la mme faon, dans le monde Java, tu peux, partir dune classe, en crer une nouvelle. La classe AnimalFamilier possde un comportement et des attributs partags par de nombreux animaux familiers ils mangent, dorment, certains dentre eux mettent des bruits, leurs peaux peuvent tre de diffrentes couleurs, etc. Dun autre ct, les animaux familiers sont diffrents les uns des autres les chiens aboient, les poissons nagent et sont silencieux, les perroquets parlent mieux que les chiens. Mais tous mangent, dorment, ont un poids et une taille. Cest pourquoi il est plus facile de crer une classe Poisson qui hritera certains comportements et attributs communs de la classe AnimalFamilier, que de crer Chien, Perroquet ou Poisson partir de rien chaque fois. Le mot-cl spcial extends est l pour a :

class Poisson extends AnimalFamilier { }

On peut dire que notre Poisson est une sous-classe (subclass) de la classe AnimalFamilier et que la classe AnimalFamilier est une superclasse (superclass) de la classe Poisson. Autrement dit, on utilise la classe AnimalFamilier comme un modle pour crer la classe Poisson. Mme si tu te contentes de laisser la classe Poisson telle quelle est maintenant, tu peux toujours utiliser chacun des attributs et mthodes hrits de la classe AnimalFamilier. Regarde :Poisson monPetitPoisson = new Poisson(); monPetitPoisson.dormir();

Mme si nous navons pas encore dclar de mthode dans la classe Poisson, nous avons le droit dappeler la mthode dormir() de sa superclasse !

Programmation Java pour les enfants, les parents et les grands-parents

48

Dans Eclipse, la cration de sous-classes est une partie de plaisir ! Slectionne le menu Fichier, Nouveau, Classe et tape Poisson comme nom de la classe. Remplace la valeur java.lang.Object par le mot AnimalFamilier dans le champ Superclasse.

Noublions pas cependant que nous sommes en train de crer une sousclasse dAnimalFamilier pour ajouter certaines proprits que seuls les poissons possdent et rutiliser une partie du code que nous avons crit pour un animal familier en gnral.

Il est temps de te rvler un secret toutes les classes Java hritent de la super superclasse Object, que tu utilises le mot extends ou pas. Mais une classe Java ne peut pas avoir deux parents distincts. Si ctait la mme chose avec les gens, les enfants ne seraient pas des sous-classes de leurs parents, mais tous les garons seraient des descendants dAdam et toutes les filles des descendantes dEve .

Programmation Java pour les enfants, les parents et les grands-parents

49

Tous les animaux ne sont pas capables de plonger, mais il est certain que les poissons le peuvent. Ajoutons maintenant une nouvelle mthode plonger() la classe Poisson.public class Poisson extends AnimalFamilier { int profondeurCourante = 0; public int plonger(int combienDePlus){ profondeurCourante = profondeurCourante + combienDePlus; System.out.println("Plonge de " + combienDePlus + " mtres"); System.out.println("Je suis " + profondeurCourante + " mtres sous le niveau de la mer"); return profondeurCourante; }

}

La mthode plonger() a un argument combienDePlus qui indique au poisson de combien il doit plonger. Nous avons aussi dclar la variable de classe profondeurCourante qui enregistrera la nouvelle profondeur courante chaque fois que tu appelleras la mthode plonger(). Cette mthode renvoie la valeur courante de la variable profondeurCourante la classe appelante. Cre maintenant une autre classe nomme MatrePoisson qui ressemble ceci :public class MatrePoisson { public static void main(String[] args) { Poisson monPoisson = new Poisson(); monPoisson.plonger(2); monPoisson.plonger(3); monPoisson.dormir(); } }

La mthode main() instancie lobjet Poisson et appelle sa mthode plonger() deux fois, avec des arguments diffrents. Ensuite, elle appelle la mthode dormir(). Quand tu excutes le programme MatrePoisson, il affiche les messages suivants :Plonge Je suis Plonge Je suis de 2 mtres 2 mtres sous le niveau de la mer de 3 mtres 5 mtres sous le niveau de la mer

Programmation Java pour les enfants, les parents et les grands-parents Bonne nuit, demain

50

As-tu not que, outre la mthode dfinie dans la classe Poisson, le MatrePoisson appelle aussi des mthodes de sa superclasse AnimalFamilier ? Cest tout lintrt de lhritage tu nas pas besoin de copier et coller le code de la classe AnimalFamilier il suffit dutiliser le mot extends et la classe Poisson peut utiliser les mthodes dAnimalFamilier !

Encore une chose : bien que la mthode plonger() renvoie la valeur de profondeurCourante, notre MatrePoisson ne lutilise pas. Trs bien, notre MatrePoisson na pas besoin de cette valeur ; mais peuttre y a-t-il dautres classes qui utilisent Poisson, qui pourraient trouver cette valeur utile. Par exemple, imagine une classe ContrleurTraficPoissons qui doit connatre les positions des autres poissons dans la mer avant dautoriser un poisson plonger, pour viter les accidents .

Surcharge dune mthodeComme tu le sais, les poissons ne parlent pas (du moins ne parlent-ils pas voix haute). Mais notre classe Poisson hrite de la classe AnimalFamilier qui possde la mthode dire(). Ceci signifie que rien ne tempche dcrire quelque chose comme a :

Programmation Java pour les enfants, les parents et les grands-parents monPoisson.dire("Un poisson qui parle !");

51

Eh bien, notre poisson a commenc parler Pour viter que cela se produise, il faut que la classe Poisson surcharge (override) la mthode dire() de la classe AnimalFamilier. Voil comment a marche : si tu dclares une mthode avec exactement la mme signature dans la sous-classe que dans la superclasse, la mthode de la sous-classe sera utilise la place de celle de la superclasse. Ajoutons la mthode dire() la classe Poisson.public String dire(String unMot) { return "Ne sais-tu pas que les poissons ne parlent pas ?"; }

Ajoute maintenant lappel suivant dans la mthode main() de la classe MatrePoisson :String ractionPoisson; ractionPoisson = monPoisson.dire("Salut"); System.out.println(ractionPoisson);

Excute le programme et il affichera :Ne sais-tu pas que les poissons ne parlent pas ?

Cela prouve que la mthode dire() de la classe AnimalFamilier a t surcharge, ou, autrement dit, supprime.

Si la signature dune mthode inclut le mot-cl final, elle ne peut pas tre surcharge. Par exemple:final public void dormir(){}

Waouh ! Nous en avons appris, des choses, dans ce chapitre. Que dirais-tu dune petite pause ?

Programmation Java pour les enfants, les parents et les grands-parents

52

Autres lectures1. Types de donnes Java :http://java.sun.com/docs/books/tutorial/java/nutsandb olts/datatypes.html

2. Hritage :http://java.sun.com/docs/books/tutorial/java/concepts/i nheritance.html

Exercices1. Cre une nouvelle classe Voiture possdant les mthodes suivantes :public void dmarrer() public void arrter() public int rouler(int dure)

La mthode rouler() doit renvoyer la distance totale parcourue par la voiture pendant un temps donn. Utilise la formule suivante pour calculer la distance :distance = dure * 60;

2. Ecris une autre classe, PropritaireVoiture, qui cre une instance de lobjet Voiture et appelle ses mthodes. Le rsultat de chaque appel de mthode doit tre affich laide de System.out.println().

Programmation Java pour les enfants, les parents et les grands-parents

53

Exercices pour les petits malinsCre une sous-classe de Voiture nomme VoitureJamesBond et surcharge la mthode rouler(). Utilise la formule suivante pour calculer la distance :distance = dure*180;

Sois cratif, affiche des messages amusants !

Programmation Java pour les enfants, les parents et les grands-parents

54

Chapitre 4. Briques de base Java

programme pour expliquer quoi servent une ligne, une mthode ou une classe particulire. Tout d'abord, il arrive qu'on oublie pourquoi on a crit un programme de cette faon. Ensuite, les commentaires aident les autres programmeurs comprendre ton code.

T

u peux ajouter n'importe quels commentaires textuels ton

Commentaires de programmeIl y a trois types de commentaires diffrents : Si tes commentaires tiennent sur une ligne, commence-les par deux barres obliques (slashs) :// Cette mthode calcule la distance

Les commentaires s'tendant sur plusieurs lignes doivent tre entours par les symboles /* et */, par exemple :/* les 3 lignes suivantes enregistrent la position courante du Poisson. */

Java est fourni avec un programme spcial, javadoc, qui peut extraire certains des commentaires de tes programmes dans un fichier d'aide spar. Ce fichier peut tre utilis comme documentation technique de tes programmes. Ces commentaires sont entours par les symboles /** et */. Seuls les commentaires les plus importants, comme la description d'une classe ou d'une mthode, devraient tre reprs ainsi./** Cette mthode calcule la remise en fonction du prix. Si le prix est suprieur 100 , la remise est de 20%, sinon, elle est seulement de 10%. */

A partir de maintenant, j'ajouterai des commentaires aux exemples de code pour que tu comprennes mieux comment et o les utiliser.

Programmation Java pour les enfants, les parents et les grands-parents

55

Prises de dcisions l'aide de la clause ifNous prenons sans arrt des dcisions dans la vie : Si elle me dit ceci, je lui rpondrai cela ; sinon, je ferai autre chose. Java possde une clause qui value une expression donne pour savoir si sa valeur est true ou false. Selon la valeur de cette expression, l'excution de ton programme prend une direction ou une autre ; seule la portion de code correspondante est excute. Par exemple, si l'expression Ai-je envie d'aller voir grand-mre ? retourne true, tourne gauche, sinon, tourne droite. Si l'expression retourne true, Java excute le code compris entre les deux premires accolades, sinon, il va directement au code suivant la clause else. Par exemple, si un prix est suprieur cent euros, donner une remise de 20%, sinon, ne donner que 10%.// Les biens les plus chers donnent une remise de 20% if (prix > 100) { prix = prix * 0.8; System.out.println("Tu as 20% de remise"); } else { prix = prix * 0.9; System.out.println("Tu as 10% de remise"); }

Programmation Java pour les enfants, les parents et les grands-parents

56

Modifions la mthode plonger() de la classe Poisson pour que notre poisson ne puisse pas plonger plus profond que 100 mtres :public class Poisson extends AnimalFamilier { int profondeurCourante = 0; public int plonger(int combienDePlus) { profondeurCourante = profondeurCourante + combienDePlus; if (profondeurCourante > 100) { System.out.println("Je suis un petit " + " poisson et je ne peux pas plonger" + " plus profond que 100 mtres"); profondeurCourante = profondeurCourante - combienDePlus; } else { System.out.println("Plonge de " + combienDePlus + " mtres"); System.out.println("Je suis " + profondeurCourante + " mtres sous le niveau de la mer"); } return profondeurCourante; } public String dire(String unMot) { return "Ne sais-tu pas que les poissons ne" + " parlent pas ?"; }

}

Effectuons ensuite une petite modification de MatrePoisson laissons-le essayer de faire plonger notre poisson trs profond :public class MatrePoisson { public static void main(String[] args) { Poisson monPoisson = new Poisson(); // Essayons de plonger plus profond que 100 mtres monPoisson.plonger(2); monPoisson.plonger(97); monPoisson.plonger(3); monPoisson.dormir(); } }

Excute ce programme et il affichera ceci :Plonge de 2 mtres Je suis 2 mtres sous le niveau de la mer Plonge de 97 mtres Je suis 99 mtres sous le niveau de la mer Je suis un petit poisson et je ne peux pas plonger plus profond que 100 mtres Bonne nuit, demain

Programmation Java pour les enfants, les parents et les grands-parents

57

Oprateurs logiquesParfois, pour prendre une dcision, il peut tre ncessaire de vrifier plus d'une expression conditionnelle. Par exemple, si le nom d'un tat est "Texas" ou "Californie", ajouter la taxe d'tat au prix de chaque article du magasin. C'est un cas d'emploi du ou logique (logical or ) soit "Texas" soit "Californie". En Java, un ou logique est reprsent par une ou deux barres verticales. Ca fonctionne comme ceci : si l'une quelconque des conditions est vraie, le rsultat de l'expression dans son ensemble vaut true. Dans les exemples suivants, j'utilise une variable de type String. Cette classe Java possde une mthode equals() que j'utilise pour comparer la valeur de la variable tat avec "Texas" ou "Californie" :if (tat.equals("Texas") | tat.equals("Californie"))

Tu peux aussi crire ceci en utilisant deux barres verticales :if (tat.equals("Texas") || tat.equals("Californie"))

La diffrence entre les deux est que, si tu utilises deux barres et que la premire expression est vraie, la seconde expression ne sera mme pas value. Si tu ne mets qu'une seule barre, Java value les deux expressions. Le et logique (logical and) est reprsent par un ou deux "et commercial" (&&) et l'expression dans son ensemble vaut true si chacune de ses parties vaut true. Par exemple, imputer les taxes commerciales uniquement dans le cas o l'tat est "New York" et o le prix est suprieur 110. Les deux conditions doivent tre vraies en mme temps :if (tat.equals("New York") && prix > 110)

ouif (tat.equals("New York") & prix > 110)

Si tu utilises un double "et commercial" et que la premire expression vaut false, la seconde ne sera mme pas value, car l'expression entire vaudra false de toutes faons. Avec un simple "et commercial", les deux expressions seront values. Le non logique (logical not) est reprsent par le point d'exclamation et donne l'expression le sens oppos. Par exemple, si tu veux effectuer certaines actions uniquement si l'tat n'est pas "New York", utilise cette syntaxe :

Programmation Java pour les enfants, les parents et les grands-parents if (!tat.equals("New York"))

58

Voici un autre exemple les deux expressions suivantes produiront le mme rsultat :if (prix < 50) if (!(prix >= 50))

Le non logique est ici appliqu l'expression entre parenthses.

Oprateur conditionnelIl existe une autre forme de la clause if : l'oprateur conditionnel. On l'utilise pour affecter une valeur une variable en fonction d'une expression termine par un point d'interrogation. Si l'expression est vraie, la valeur suivant le point d'interrogation est utilise ; sinon, la valeur suivant les deux points est affecte la variable situe gauche du signe gal :remise = prix > 50 ? 10 : 5;

Si le prix est suprieur 50, la variable remise prend la valeur 10 ; sinon, elle vaut 5. C'est juste un raccourci pour exprimer une clause if normale :if (prix > 50) { remise = 10; } else { remise = 5; }

Utilisation de else ifTu peux construire des clauses if plus complexes avec plusieurs blocs else if. Nous allons maintenant crer la classe BulletinApprciation. Cette classe doit avoir la mthode main() ainsi qu'une mthode acceptant un argument la note du devoir. En fonction du nombre, cette mthode affichera ton niveau sous la forme I (Insuffisant), P (Passable), A (Assez bien), B (Bien), T (Trs bien) ou E (Excellent). Nous la nommerons convertirNiveaux().

Programmation Java pour les enfants, les parents et les grands-parents

59

public class BulletinApprciation { /** Cette mthode attend un argument entier la note du devoir - et retourne une mention, I, P, A, B, T ou E, en fonction de sa valeur. */ public char convertirNiveaux(int noteDevoir) { char niveau; if (noteDevoir >= 18) { niveau = 'E'; } else if (noteDevoir >= 16 niveau = 'T'; } else if (noteDevoir >= 14 niveau = 'B'; } else if (noteDevoir >= 12 niveau = 'A'; } else if (noteDevoir >= 10 niveau = 'P'; } else { niveau = 'I'; } return niveau; } public static void main(String[] args) { BulletinApprciation convertisseur = new BulletinApprciation(); char tonNiveau = convertisseur.convertirNiveaux(17); System.out.println("Ton premier niveau est " + tonNiveau); tonNiveau = convertisseur.convertirNiveaux(15); System.out.println("Ton second niveau est " + tonNiveau);

&& noteDevoir < 18) { && noteDevoir < 16) { && noteDevoir < 14) { && noteDevoir < 12) {

}

}

Outre l'utilisation de la condition else if, cet exemple te montre aussi comment utiliser des variables de type char. Tu peux aussi voir que tu peux utiliser l'oprateur && pour vrifier si un nombre appartient une plage de valeurs donne. Tu ne peux pas crire simplement if rsultatTest entre 16 et 18, mais en Java nous crivons que rsultatTest doit tre la fois suprieur ou gal 16 et infrieur 18 :rsultatTest >= 16 && rsultatTest < 18

Programmation Java pour les enfants, les parents et les grands-parents

60

Rflchis la raison pour laquelle nous ne pouvons pas utiliser l'oprateur || ici.

Prises de dcisions l'aide de la clause switchLa clause switch peut parfois tre utilise comme alternative if. L'expression aprs le mot-cl switch est value et le programme va directement au case (cas) correspondant :public static void main(String[] args) { BulletinApprciation convertisseur = new BulletinApprciation(); char tonNiveau = convertisseur.convertirNiveaux(15); switch (tonNiveau) { case 'E': System.out.println("Excellent travail !"); break; case 'T': System.out.println("Trs bon travail !"); break; case 'B': System.out.println("Bon travail !"); break; case 'A': System.out.println("Tu peux mieux faire !"); break; case 'P': System.out.println("Tu dois travailler plus !"); break; case 'I': System.out.println("Change d'attitude !"); break; } }

N'oublie pas le mot-cl break la fin de chaque cas il faut que le code saute hors de la clause switch. Sans les instructions break, ce code imprimerait, par exemple, les quatre dernires lignes si la variable tonNiveau avait la valeur 'B'. La clause switch Java a une limitation l'expression valuer doit tre de l'un de ces types : char int byte short

Programmation Java pour les enfants, les parents et les grands-parents

61

Quelle est la dure de vie des variables ?La classe BulletinApprciation dclare la variable niveau dans la mthode convertirNiveaux(). Si tu dclares une variable l'intrieur d'une mthode, cette variable est dite locale. Cela signifie que cette variable n'est accessible que pour le code l'intrieur de cette mthode. Quand la mthode se termine, la variable est automatiquement efface de la mmoire. Les programmeurs utilisent aussi le mot porte (scope) pour prciser combien de temps une variable vivra. Par exemple, tu peux dire que les variables dclares l'intrieur d'une mthode ont une porte locale. Si une variable doit tre rutilise par plusieurs appels de mthode, ou si elle doit tre visible par plus d'une mthode d'une classe, il est prfrable de la dclarer en dehors de toute mthode. Dans la classe Poisson, profondeurCourante est une variable membre (member). De telles variables sont "vivantes" tant que l'instance de l'objet Poisson existe en mmoire ; c'est pourquoi on les appelle des variables d'instance. Elles peuvent tre partages et rutilises par toutes les mthodes de la classe et, dans certains cas, elles peuvent mme tre visibles depuis des classes extrieures. Par exemple, dans nos classes, l'instruction System.out.println() utilise la variable de classe out dclare dans la classe System. Attends une minute ! Pouvons-nous utiliser une variable membre de la classe System sans mme avoir cr une instance de cette classe ? Oui, nous le pouvons, si cette variable a t dclare avec le mot-cl static. Si la dclaration d'une variable membre ou d'une mthode commence par static, il n'est pas ncessaire de crer une instance de la classe pour l'utiliser. Les membres statiques d'une classe sont utiliss pour stocker les valeurs qui sont identiques pour toutes les instances d'une classe. Par exemple, la mthode convertirNiveaux() peut tre dclare comme static dans la classe BulletinApprciation, car son code n'utilise pas de variables membres pour lire ou stocker des valeurs spcifiques une instance particulire de la classe. Voici comment on appelle une mthode statique :char tonNiveau = BulletinApprciation.convertirNiveaux(15);

Voici un autre exemple : il y a en Java une classe Math qui contient plusieurs douzaines de mthodes mathmatiques telles que sqrt() (racine carre), sin(), abs() et autres. Toutes ces mthodes sont statiques et tu n'as pas besoin de crer une instance de la classe Math pour les appeler. Par exemple :

Programmation Java pour les enfants, les parents et les grands-parents double racineCarre = Math.sqrt(4.0);

62

Mthodes spciales : constructeursJava utilise l'oprateur new (nouveau) pour crer des instances d'objets en mmoire. Par exemple :Poisson monPoisson = new Poisson();

Les parenthses aprs le mot Poisson signifient que cette classe a une mthode nomme Poisson(). Oui, il y a des mthodes spciales appeles constructeurs (constructors), qui ont les caractristiques suivantes :

Les constructeurs ne sont appels qu'une fois au cours de la construction d'un objet en mmoire. Ils doivent avoir le mme nom que la classe elle-mme. Ils ne retournent pas de valeur ; il n'est mme pas ncessaire d'utiliser le mot-cl void dans la signature d'un constructeur.

Toute classe peut avoir plusieurs constructeurs. Si tu ne cres pas de constructeur pour une classe, Java cre automatiquement, lors de la compilation, un constructeur sans argument par dfaut. C'est pour cela que le compilateur Java n'a jamais rclam une dclaration permettant d'crire new Poisson(), alors que la classe Poisson ne dfinit aucun constructeur. En gnral, les constructeurs sont utiliss pour affecter des valeurs initiales aux variables membres d'une classe. Par exemple, la version suivante de la classe Poisson a un constructeur mono-argument qui se contente d'affecter la valeur de l'argument la variable d'instance profondeurCourante pour une utilisation ultrieure.

public class Poisson extends AnimalFamilier { int profondeurCourante; Poisson(int positionDpart) { profondeurCourante = positionDpart; }

}

Maintenant, la classe MatrePoisson peut crer une instance de Poisson et affecter la position initiale du poisson. L'exemple suivant cre une instance de Poisson "submerge" sous 20 mtres d'eau :Poisson monPoisson = new Poisson(20);

Programmation Java pour les enfants, les parents et les grands-parents

63

Si un constructeur avec arguments est dfini dans une classe, il n'est plus possible d'utiliser le constructeur sans argument par dfaut. Si tu souhaites avoir un constructeur sans argument, cris-en un.

Le mot-cl thisLe mot-cl this est utile lorsque tu as besoin de te rfrer l'instance de l'objet dans laquelle tu te trouves. Regarde cet exemple :class Poisson { int profondeurCourante ; Poisson(int profondeurCourante) { this.profondeurCourante = profondeurCourante; } }

Le mot-cl this permet d'viter les conflits de nom. Par exemple, this.profondeurCourante fait rfrence la variable membre profondeurCourante, alors que profondeurCourante fait rfrence la valeur de l'argument. En d'autres termes, l'instance de l'objet Poisson pointe sur ellemme. Tu verras un autre exemple important de l'utilisation du mot-cl this au Chapitre 6, dans la section Comment passer des donnes entre classes.

TableauxDisons que ton programme doit stocker les noms de quatre joueurs. Au lieu de dclarer quatre variables de type String, tu peux dclarer un tableau (array) qui a quatre lments de type String. Les tableaux sont reprs par des crochets, placs soit aprs le nom de la variable, soit aprs le type de donnes :String [] joueurs;

ou

Programmation Java pour les enfants, les parents et les grands-parents String joueurs[];

64

Ces lignes indiquent juste au compilateur Java que tu as l'intention de stocker plusieurs chanes de caractres dans le tableau joueurs. Chaque lment possde son propre indice partant de zro. L'exemple suivant cre en fait une instance de tableau qui peut stocker quatre lments de type String puis leur affecte des valeurs :joueurs = new String [4]; joueurs[0] joueurs[1] joueurs[2] joueurs[3] = = = = "David"; "Daniel"; "Anna"; "Gregory";

Tu dois connatre la taille du tableau avant d'affecter des valeurs ses lments. Si tu ne sais pas l'avance combien d'lments tu vas avoir, tu ne peux pas utiliser de tableaux ; tu devrais examiner d'autres classes Java, par exemple Vector (vecteur). Mais concentrons-nous pour l'instant sur nos tableaux. Tous les tableaux ont un attribut nomm length (longueur) qui se "rappelle" le nombre d'lments de ce tableau. Tu peux donc toujours savoir combien d'lments il y a :int nombreJoueurs = joueurs.length;

Si tu connais toutes les valeurs qui seront stockes dans le tableau au moment o tu le dclares, Java te permet de dclarer et d'initialiser le tableau d'un seul coup :String [] joueurs = {"David", "Daniel", "Anna", "Gregory"};

Imagine que le second joueur soit un gagnant et que tu souhaites lui faire part de tes flicitations. Si le nom des joueurs est stock dans un tableau, nous avons besoin de son deuxime lment :

Programmation Java pour les enfants, les parents et les grands-parents

65

String leGagnant = joueurs[1]; System.out.println("Flicitations, " + leGagnant + " !");

Voil ce qu'affiche ce code :Flicitations, Daniel !

Sais-tu pourquoi le deuxime lment a l'indice [1] ? Bien sr que tu le sais : l'indice du premier lment est toujours [0]. Le tableau de joueurs de notre exemple est unidimensionnel, car nous les stockons en quelque sorte en ligne. Si nous voulons stocker les valeurs sous forme de matrice, nous pouvons crer un tableau bidimensionnel. Java permet la cration de tableaux multidimensionnels. Tu peux stocker n'importe quel objet dans un tableau ; je te montrerai comment au Chapitre 10.

Rptition d'actions l'aide de bouclesLes boucles (loops) sont utilises pour rpter la mme action plusieurs fois, par exemple si nous avons besoin de fliciter plusieurs joueurs. Si tu sais l'avance combien de fois l'action doit tre rpte, utilise une boucle avec le mot-cl for (pour) :int nombreJoueurs = joueurs.length; int compteur; for (compteur = 0; compteur < nombreJoueurs; compteur++) { String leJoueur = joueurs[compteur]; System.out.println("Flicitations, " + leJoueur + " !"); }

Java excute chaque ligne entre les accolades puis retourne la premire ligne de la boucle, pour incrmenter le compteur et valuer l'expression conditionnelle. Ce code signifie ceci : Affiche la valeur de l'lment du tableau dont l'indice est identique la valeur courante du compteur. Commence de l'lment 0 (compteur = 0) et incrmente de 1 la valeur du compteur (compteur++). Continue faire ainsi tant que le compteur est infrieur nombreJoueurs (compteur < nombreJ