647
Apprenez à programmer en Java Par cysboy www.siteduzero.com Licence Creative Commons BY-NC-SA 2.0 Dernière mise à jour le 16/04/2012

Apprenez a Programmer en Java

Embed Size (px)

Citation preview

Apprenez programmer en JavaPar cysboy

www.siteduzero.com

Licence Creative Commons BY-NC-SA 2.0 Dernire mise jour le 16/04/2012

2/648

SommaireSommaire ........................................................................................................................................... Partager .............................................................................................................................................. Apprenez programmer en Java ....................................................................................................... Partie 1 : Bien commencer en Java .................................................................................................... 2 4 6 7

Parlons d'Eclipse ............................................................................................................................................................... 8Prambule ................................................................................................................................................................................................................... 8 Tlchargement .......................................................................................................................................................................................................... 8

Les variables et les oprateurs ....................................................................................................................................... 10Les diffrents types de variables ............................................................................................................................................................................... Les oprateurs arithmtiques .................................................................................................................................................................................... Les oprateurs arithmtiques .................................................................................................................................................................................... Les conversions, ou "cast" ........................................................................................................................................................................................ 10 13 13 16

Lire les entres clavier .................................................................................................................................................... 18Utilisation de l'objet Scanner ..................................................................................................................................................................................... 19 Rcuprez ce que vous tapez ................................................................................................................................................................................... 20

Les conditions ................................................................................................................................................................. 23La structure if....else .................................................................................................................................................................................................. 24 La structure switch .................................................................................................................................................................................................... 26 La condition ternaire .................................................................................................................................................................................................. 28

Les boucles ..................................................................................................................................................................... 30La boucle while .......................................................................................................................................................................................................... 30 La boucle do....while .................................................................................................................................................................................................. 34 La boucle for .............................................................................................................................................................................................................. 35

TP n1 : un tableau de conversion Celsius - Fahrenheit ! .............................................................................................. 37laboration ................................................................................................................................................................................................................ 38 Correction .................................................................................................................................................................................................................. 40

Les tableaux .................................................................................................................................................................... 42Dclarer et initialiser un tableau ................................................................................................................................................................................ 43 Les tableaux multi-dimensionnels ............................................................................................................................................................................. 44 Utiliser et rechercher dans un tableau ! ..................................................................................................................................................................... 45 Un tableau multi-dimensionnel .................................................................................................................................................................................. 48

Les mthodes de classe ................................................................................................................................................. 53Quelques mthodes bien utiles ! ............................................................................................................................................................................... Des mthodes concernant les mathmatiques ......................................................................................................................................................... Crer et utiliser sa propre mthode ! ......................................................................................................................................................................... La surcharge de mthode ......................................................................................................................................................................................... 54 56 57 61

Partie 2 : Java Orient Objet ............................................................................................................. 62Les premiers pas en "Orient Objet" ............................................................................................................................... 63Les classes ............................................................................................................................................................................................................... Les constructeurs ...................................................................................................................................................................................................... Votre objet sait parler : accesseurs et mutateurs ...................................................................................................................................................... Travaillez avec votre objet : les mthodes ................................................................................................................................................................ Les variables de classes ........................................................................................................................................................................................... Astuce Eclipse ........................................................................................................................................................................................................... Ce qu'il faut retenir .................................................................................................................................................................................................... 63 65 71 75 80 84 87

L'hritage ! ....................................................................................................................................................................... 87La notion d'hritage ................................................................................................................................................................................................... 88 Construction d'un objet hrit .................................................................................................................................................................................... 92 Le polymorphisme ..................................................................................................................................................................................................... 95 Ce qu'il faut retenir .................................................................................................................................................................................................. 100

Apprendre modliser .................................................................................................................................................. 102UML, mais qu'est-ce donc ? .................................................................................................................................................................................... 102 Modliser un objet ................................................................................................................................................................................................... 103 Modliser les interactions entre objets .................................................................................................................................................................... 103

Les classes abstraites ................................................................................................................................................... 107Qu'est-ce que c'est ? ............................................................................................................................................................................................... 108 Une classe Animal trs abstraite ............................................................................................................................................................................. 109 toffons notre exemple ............................................................................................................................................................................................ 111 Astuce d'Eclipse ...................................................................................................................................................................................................... 117 Ce qu'il faut retenir .................................................................................................................................................................................................. 120

Les interfaces ................................................................................................................................................................ 120Une petite devinette ................................................................................................................................................................................................ Votre premire interface .......................................................................................................................................................................................... Implmentation de l'interface Rintintin .................................................................................................................................................................... Astuce d'Eclipse ...................................................................................................................................................................................................... Ce qu'il faut retenir .................................................................................................................................................................................................. Premier exemple d'exception et le bloc try{....} catch{...} ........................................................................................................................................ Les exceptions personnalises ............................................................................................................................................................................... La gestion de plusieurs exceptions ......................................................................................................................................................................... Astuce d'Eclipse ...................................................................................................................................................................................................... Ce qu'il faut retenir .................................................................................................................................................................................................. 121 121 123 126 129 130 132 140 143 145

Les exceptions .............................................................................................................................................................. 130

www.siteduzero.com

Sommaire

3/648147 148 149 150 152 155 158 159 163 164 164 168 172

Les collections d'objets ................................................................................................................................................. 147L'objet LinkedList ..................................................................................................................................................................................................... L'objet ArrayList ....................................................................................................................................................................................................... L'objet Hashtable ..................................................................................................................................................................................................... L'objet HashSet ....................................................................................................................................................................................................... Notion de base ........................................................................................................................................................................................................ Plus loin dans la gnricit ! ................................................................................................................................................................................... Gnricit et collection ............................................................................................................................................................................................ Hritage et gnricit .............................................................................................................................................................................................. Ce qu'il faut retenir .................................................................................................................................................................................................. Commenons par le commencement ..................................................................................................................................................................... Interroger un objet Class ......................................................................................................................................................................................... Instanciation dynamique ......................................................................................................................................................................................... Ce qu'il faut retenir ..................................................................................................................................................................................................

La gnricit en Java .................................................................................................................................................... 152

Java et la rflexivit ....................................................................................................................................................... 163

Partie 3 : Java et la programmation vnementielle ....................................................................... 173Votre premire fentre .................................................................................................................................................. 173L'objet JFrame ......................................................................................................................................................................................................... Votre fentre hrite ................................................................................................................................................................................................ Des mthodes et encore des mthodes ................................................................................................................................................................. Ce que vous cache votre fentre ............................................................................................................................................................................ Ce qu'il faut retenir .................................................................................................................................................................................................. Crez un conteneur pour votre fentre ................................................................................................................................................................... L'objet Graphics ...................................................................................................................................................................................................... Plus loin dans le Graphics ....................................................................................................................................................................................... Le cousin cach : l'objet Graphics2D ...................................................................................................................................................................... Ce qu'il faut retenir .................................................................................................................................................................................................. Les dplacements : principe ................................................................................................................................................................................... Continue, ne t'arrtes pas si vite ! ........................................................................................................................................................................... Attention aux bords, ne va pas te faire mal... .......................................................................................................................................................... Ce qu'il faut retenir .................................................................................................................................................................................................. 173 175 176 177 178 179 180 182 189 194 195 199 201 202

Une histoire de conteneur ............................................................................................................................................. 178

Faire une animation simple ........................................................................................................................................... 194

Votre premier bouton ..................................................................................................................................................... 203Utiliser la classe JButton ......................................................................................................................................................................................... 203 Les layout managers ............................................................................................................................................................................................... 206 Continuons dans notre lance ................................................................................................................................................................................. 211 Une classe Bouton personnalise ........................................................................................................................................................................... 213 Interaction avec la souris : l'interface MouseListener .............................................................................................................................................. 216 Ce qu'il faut retenir .................................................................................................................................................................................................. 224

Interaction bouton(s) - application ................................................................................................................................. 224Dclencher une action : l'interface ActionListener ................................................................................................................................................... 225 Parlez avec votre classe intrieure ......................................................................................................................................................................... 234 Contrler votre animation : lancement et arrt ........................................................................................................................................................ 239 Cadeau : votre bouton personnalis optimis ! ....................................................................................................................................................... 244 Ce qu'il faut retenir .................................................................................................................................................................................................. 247

TP : une calculatrice ...................................................................................................................................................... 248laboration .............................................................................................................................................................................................................. Conception .............................................................................................................................................................................................................. Correction ................................................................................................................................................................................................................ Astuce Eclipse : faire un jar excutable .................................................................................................................................................................. Principes et bases ................................................................................................................................................................................................... Une classe hrite de Thread ................................................................................................................................................................................. Utiliser l'interface Runnable ..................................................................................................................................................................................... Synchronisez vos threads ....................................................................................................................................................................................... Contrlez votre animation ....................................................................................................................................................................................... Ce qu'il faut retenir .................................................................................................................................................................................................. Premire utilisation .................................................................................................................................................................................................. L'interface ItemListener ........................................................................................................................................................................................... Changer la forme de notre animation ...................................................................................................................................................................... Ce qu'il faut retenir .................................................................................................................................................................................................. Premier exemple ..................................................................................................................................................................................................... Un pseudo-morphing pour notre animation ............................................................................................................................................................. Les boutons radio : l'objet JRadioButton ................................................................................................................................................................. Ce qu'il faut retenir .................................................................................................................................................................................................. 248 248 249 254 263 263 268 272 273 275 277 280 283 289 290 292 299 302

Les threads .................................................................................................................................................................... 263

Les listes : l'objet JComboBox ...................................................................................................................................... 276

Les cases cocher : l'objet JCheckBox ....................................................................................................................... 289

Les champs de texte : l'objet JTextField ....................................................................................................................... 303Utilisation ................................................................................................................................................................................................................. 303 Un objet plus restrictif : le JFormattedTextField ...................................................................................................................................................... 304 Contrlez vos donnes post-saisie ......................................................................................................................................................................... 309 Premire approche .................................................................................................................................................................................................. 311 Utiliser des expressions rgulires ......................................................................................................................................................................... 314 Utiliser des regex ..................................................................................................................................................................................................... 314 Les regex et l'objet String ........................................................................................................................................................................................ 315 Les regex et l'API regex .......................................................................................................................................................................................... 318 Contrle du clavier : l'interface KeyListener ............................................................................................................................................................ 321 Utiliser les classes anonymes ................................................................................................................................................................................. 325

www.siteduzero.com

Sommaire

4/648

Ce qu'il faut retenir .................................................................................................................................................................................................. 329

Les applets .................................................................................................................................................................... 330Les applets : qusaco ? .......................................................................................................................................................................................... Votre premire applet .............................................................................................................................................................................................. Codage de l'applet .................................................................................................................................................................................................. Insertion dans une page HTML ............................................................................................................................................................................... Nota Bene ............................................................................................................................................................................................................... Interaction page web - applet .................................................................................................................................................................................. Interaction applet - page web .................................................................................................................................................................................. Applets et scurit ................................................................................................................................................................................................... Ce que vous devez retenir ...................................................................................................................................................................................... Les botes d'information .......................................................................................................................................................................................... Les types de botes ................................................................................................................................................................................................. Les botes de confirmation ...................................................................................................................................................................................... Les botes de saisie ................................................................................................................................................................................................ Des botes de dialogue personnalises .................................................................................................................................................................. Voici des screenshots obtenus ................................................................................................................................................................................ Ce qu'il faut retenir .................................................................................................................................................................................................. La barre de menus et les lments de menu .......................................................................................................................................................... Un menu simple ...................................................................................................................................................................................................... Les raccourcis clavier .............................................................................................................................................................................................. Faire un menu contextuel ........................................................................................................................................................................................ Les points importants pour notre menu contextuel ................................................................................................................................................. Les barres d'outils ................................................................................................................................................................................................... Utiliser les actions abstraites ................................................................................................................................................................................... Ce qu'il faut retenir .................................................................................................................................................................................................. Cahier des charges ................................................................................................................................................................................................. Prrequis ................................................................................................................................................................................................................. Correction ................................................................................................................................................................................................................ Point.java ................................................................................................................................................................................................................ DrawPanel.java ....................................................................................................................................................................................................... Fenetre.java ............................................................................................................................................................................................................ Amliorations possibles .......................................................................................................................................................................................... Les flux : qu'est-ce donc ? ....................................................................................................................................................................................... L'objet File ............................................................................................................................................................................................................... Les objets FileInputStream et FileOutputStream .................................................................................................................................................... Les flux filtrs : les classes FilterInputStream et FilterOutputStream ...................................................................................................................... La srialisation : les objets ObjectInputStream et ObjectOutputStream ................................................................................................................. Cas pratique ............................................................................................................................................................................................................ Ce qu'il faut retenir .................................................................................................................................................................................................. 331 332 332 334 338 339 340 344 344 346 349 350 357 359 367 368 369 369 381 385 385 402 413 423 424 425 426 426 427 429 432 433 434 435 439 443 448 457

Les botes de dialogue .................................................................................................................................................. 345

Les menus ..................................................................................................................................................................... 369

TP : l'ardoise maZique .................................................................................................................................................. 424

Les flux d'entres / sorties (1/2) .................................................................................................................................... 432

Les flux d'entres / sorties (2/2) .................................................................................................................................... 459Les objets CharArray(Writer/Reader) et String(Writer/Reader) ............................................................................................................................... 459 les classes File(Writer/Reader) et Print(Writer/Reader) .......................................................................................................................................... 461 Du renouveau chez les flux : le package java.nio ................................................................................................................................................... 462

TP : Le penduZ .............................................................................................................................................................. 464Cahier des charges ................................................................................................................................................................................................. 465 Prrequis ................................................................................................................................................................................................................. 466 Correction ................................................................................................................................................................................................................ 467

Grez vos conteneurs ................................................................................................................................................... 469Rendre vos conteneurs fractionnables .................................................................................................................................................................... Ajouter des scrolls ................................................................................................................................................................................................... Avoir plusieurs contenus ......................................................................................................................................................................................... Ce qu'il faut retenir .................................................................................................................................................................................................. La composition des arbres ...................................................................................................................................................................................... Des arbres qui vous parlent .................................................................................................................................................................................... Dcorez vos arbres ................................................................................................................................................................................................. Jouons avec nos arbres .......................................................................................................................................................................................... Ce que vous devez retenir ...................................................................................................................................................................................... Premiers pas ........................................................................................................................................................................................................... Les cellules, c'est la vie ........................................................................................................................................................................................... Contrlez l'affichage de vos cellules ....................................................................................................................................................................... Des tableaux trs actifs ! ......................................................................................................................................................................................... Ajouter des lignes et des colonnes ......................................................................................................................................................................... Ce qu'il faut retenir .................................................................................................................................................................................................. 469 473 477 482 483 487 494 500 515 516 517 525 530 537 548

Les arbres ..................................................................................................................................................................... 482

Les tableaux, les vrais ................................................................................................................................................... 515

Ce que vous pouvez voir en plus .................................................................................................................................. 548D'autres conteneurs graphiques ............................................................................................................................................................................. 549 D'autres objets graphiques ...................................................................................................................................................................................... 551 Enjoliver vos IHM .................................................................................................................................................................................................... 556

Partie 4 : Les Design patterns ......................................................................................................... 560Les limites de l'hritage : le pattern strategy ................................................................................................................. 560Posons le problme ................................................................................................................................................................................................ Voici le tableau ........................................................................................................................................................................................................ Le code source de ces classes ............................................................................................................................................................................... Un problme supplmentaire .................................................................................................................................................................................. 560 560 562 567

www.siteduzero.com

Partager

5/648

Une solution simple et robuste : le pattern strategy ................................................................................................................................................ 572 Ce qu'il faut retenir .................................................................................................................................................................................................. 583

Ajouter des fonctionnalits dynamiquement vos objets : le pattern decorator .......................................................... 585Posons le problme ................................................................................................................................................................................................ Le pattern decorator ................................................................................................................................................................................................ Les mystres de java.io .......................................................................................................................................................................................... Ce qu'il faut retenir .................................................................................................................................................................................................. Posons le problme ................................................................................................................................................................................................ Des objets qui parlent et qui coutent : le pattern observer .................................................................................................................................... le pattern observer : le retour .................................................................................................................................................................................. Ce qu'il faut retenir .................................................................................................................................................................................................. 585 589 597 600 601 603 609 610

Soyez l'coute de vos objets : le pattern observer .................................................................................................... 600

Un pattern puissant : le pattern MVC ............................................................................................................................ 610Premiers pas ........................................................................................................................................................................................................... 611 Le modle ............................................................................................................................................................................................................... 612 Le contrleur ........................................................................................................................................................................................................... 616 La vue ...................................................................................................................................................................................................................... 618 MVC pour le web : le pattern M2VC ........................................................................................................................................................................ 623 Ce qu'il faut retenir .................................................................................................................................................................................................. 625

Un vritable assemblage : le pattern composite ........................................................................................................... 626Creusez-vous les mninges .................................................................................................................................................................................... Comment feriez-vous pour grer ce genre de hirarchie d'objets ? ....................................................................................................................... La solution : le pattern composite ........................................................................................................................................................................... Le composite et Java .............................................................................................................................................................................................. Ce qu'il faut retenir .................................................................................................................................................................................................. 627 628 628 636 637

Partie 5 : Annexes ........................................................................................................................... 638Annexe A : liste des mots cls ....................................................................................................................................... 639Les mots cls .......................................................................................................................................................................................................... 639

Annexe B : Les objets travaillant avec des flux ............................................................................................................. 643Les objets traitant des flux d'entre (in) .................................................................................................................................................................. Sous-classes de InputStream ................................................................................................................................................................................. Sous-classes de Reader ......................................................................................................................................................................................... Les objets traitant les flux de sortie (out) ................................................................................................................................................................ Sous-classes de OutputStream .............................................................................................................................................................................. Sous-classes de Writer ........................................................................................................................................................................................... Installation ............................................................................................................................................................................................................... Installation Windows ............................................................................................................................................................................................... Installation Linux ..................................................................................................................................................................................................... Raccourcis utiles ..................................................................................................................................................................................................... 643 643 643 643 643 644 645 645 645 646

Annexe C : Eclipse ........................................................................................................................................................ 644

www.siteduzero.com

Partager

6/648

Apprenez programmer en Java

Par

cysboy

Mise jour : 12/02/2010 Difficult : Intermdiaire 66 856 visites depuis 7 jours, class 4/782 Bonjour tous, amis Zros ! Bienvenue dans mon cours de programmation en Java. C'est un langage trs utilis, notamment par un grand nombre de programmeurs professionnels, ce qui en fait un langage incontournable actuellement. V les caractristiques de Java en quelques mots : oici Java est un langage de programmation moderne dvelopp par Sun Microsystems (aujourd'hui rachet par Oracle). Il ne faut surtout pas le confondre avec JavaScript (langage de scripts utilis principalement sur les sites web), car Java n'a rien voir. Une de ses plus grandes forces est son excellente portabilit : une fois votre programme cr, il fonctionnera automatiquement sous Windows, Mac, Linux, etc. On peut faire de nombreuses sortes de programmes avec Java : des applications, sous forme de fentre ou de console ; des applets, qui sont des programmes Java incorpors des pages web ; des applications pour appareils mobiles, avec J2ME ; et bien d'autres ! J2EE, JMF, J3D pour la 3D... Comme vous le voyez, Java permet de raliser une trs grande quantit d'applications diffrentes ! Mais... comment apprendre un langage si vaste qui offre autant de possibilits ? Heureusement, ce cours est l pour tout vous apprendre de Java partir de zro .

Exemples de programmes raliss en Java

Ce cours vous plat ? Si vous avez aim ce cours, vous pouvez retrouver le livre "Apprenez programmer en Java" du mme auteur, en vente sur le Site du Zro, en librairie et dans les boutiques en ligne. V ous y trouverez ce cours adapt au format papier avec une srie de chapitres indits. Plus d'informations

N.B. : je tiens faire une ddicace spciale ptipilou, zCorrecteur mrite, sans qui ce tuto n'aurait pas vu le jour !

www.siteduzero.com

Apprenez programmer en JavaUn grand merci pour ton travail et ton soutien !

7/648

www.siteduzero.com

Partie 1 : Bien commencer en Java

8/648

Partie 1 : Bien commencer en JavaBon, vous ne connaissez rien Java ? Eh bien c'est par ici que a se passe ! Java est normalement un langage fait pour dvelopper des applications graphiques, mais pour arriver cela, nous devons tout de mme passer par la programmation Java en mode console. Donc, dans cette premire partie, nous allons voir les bases du langage, ainsi que leur fidle compagnon Eclipse.

Parlons d'EclipsePour ceux qui l'avaient devin, Eclipse est le petit logiciel qui va nous permettre de dvelopper nos applications, ou nos applets, et aussi celui qui va compiler tout a. Eh oui ! Java est un langage compil. Je ne l'avais pas dit, je crois... Donc, notre logiciel va permettre de traduire nos futurs programmes Java en langage compil. Mais celui-ci ne peut pas tre compris par l'ordinateur. Ce code compil s'appelle du Byte Code. Il n'est comprhensible que par un environnement Java, vulgairement appel JRE (Java Runtime Environment) disponible sur le site de Sun MicroSystems.

PrambuleAvant toute chose, quelques mots sur le projet Eclipse. Eclipse IDE est un environnement de dveloppement libre permettant potentiellement de crer des projets de dveloppement mettant en uvre n'importe quel langage de programmation (C++, PHP...). Eclipse IDE est principalement crit en Java. La spcificit d'Eclipse IDE vient du fait que son architecture est totalement dveloppe autour de la notion de plug-in. Cela signifie que toutes les fonctionnalits de celui-ci sont dveloppes en tant que plug-in. Pour faire court, si vous voulez ajouter des fonctionnalits clipse, vous devez : tlcharger le plug-in correspondant, copier les fichiers spcifis dans les rpertoires spcifis, dmarrer Eclipse, et a y est !

Lorsque vous tlchargez un nouveau plug-in pour clipse, celui-ci se prsente souvent comme un dossier contenant gnralement deux sous-dossiers. Un dossier plugins et un dossier features . Ces dossiers existent aussi dans le rpertoire d'clipse. Il vous faut donc copier le contenu des dossiers de votre plug-in dans le dossier correspondant dans clipse (plugins dans plugins, et features dans features).

C'est pour toutes ces raisons que j'ai choisi Eclipse comme outil de dveloppement ; de plus, vous verrez qu'il est relativement simple d'utilisation. Maintenant que ces quelques mots ont t dits, je vous invite donc passer l'tape suivante.

TlchargementAvant de vous lancer dans le tlchargement d'clipse, vous devez Java, ou JRE sur votre machine.

avant tout vous assurer d'avoir un environnement

Un JRE (ou Java Runtime Environment) va vous servir lire les programmes qui ont t cods en Java. Comme je vous l'ai dit plus tt, Eclipse est cod en Java : donc, pour utiliser Eclipse, il vous faut un JRE.

Rendez-vous donc sur la page de tlchargement des JRE sur le site de SUN Microsystem (fondateur du langage). Choisissez la dernire version du JRE. Aprs avoir cliqu sur "Download", vous arrivez sur une nouvelle page, o vous devez choisir votre systme d'exploitation et cocher le bouton "Accept License Agreement". Slectionnez votre systme d'exploitation (ici, j'ai mis Windows) et n'oubliez pas de cocher la case : "I agree to the Java SE Development Kit 6 License Agreement" afin d'accepter la licence.

www.siteduzero.com

Partie 1 : Bien commencer en Java

9/648

Euh... a veut dire quoi, JSE ?

Alors on va faire simple. Je vous ai dit plus tt que Java permet de dvelopper diffrents types d' applications. Eh bien il faut des outils diffrents pour les diffrents types d'applications. J2SE ou Java 2 Standard dition : permet de dvelopper des applications dites "client", par exemple... euh... clipse est une application "client". C'est ce que nous allons faire dans ce tutoriel. J2EE ou Java 2 Enterprise dition : permet de dvelopper des applications web en Java. J2ME ou Java 2 Micro dition : permet de dvelopper des applications pour appareil portable, comme des tlphones portables, des PDA... V oil, fin de l'apart... V ous pouvez maintenant tlcharger et installer votre JRE. Ceci fait, je vous invite donc tlcharger clipse IDE sur cette page en choisissant "clipse IDE for java developers", en choisissant la version d'Eclipse correspondant votre OS. Slectionnez maintenant le miroir que vous souhaitez utiliser pour obtenir clipse. V oil, vous n'avez plus qu' attendre la fin du tlchargement. V ! Une partie pnible de termine ! oil Par contre, Eclipse regorge de fonctionnalits. Je n'en ai pas parl pour le moment car je pense que vous comprendrez mieux le moment venu, avec un exemple concret d'utilisation. J'espre que vous avez encore de l'nergie, car, dans le chapitre suivant, nous aborderons quelque chose de bien plus passionnant... Bon ! Tenez-vous prts pour faire vos premiers codes Java ! !

www.siteduzero.com

Partie 1 : Bien commencer en Java

10/648

Les variables et les oprateursNous y voil. Encore un chapitre barbant... Mais celui-l aussi est ncessaire, et je dirais mme vital ! En Java, comme dans beaucoup de langages de programmation, avant d'utiliser une variable, nous devons d'abord dfinir ce qu'elle va contenir. T'es bien gentil, mais c'est quoi, une variable ?

Oups ! Dsol ! Je parle, je parle et j'oublie l'essentiel... Une variable, c'est ce qui va nous permettre de stocker des informations de toute sorte (chiffres, rsultats de calcul, des tableaux, des renseignements fournis par l'utilisateur...). Bref, vous ne pourrez pas faire de programme sans variables. Et comme je viens de vous le dire, et j'insiste l dessus, il faut tout prix dfinir ce que nos variables vont contenir avant de les utiliser. Une dclaration de variable se fait comme suit : ; Cette opration se termine toujours par un ";" (comme toutes les instructions de ce langage) ; ensuite, on l'initialise en rentrant une valeur.

Bon. Assez de bla-bla, on y va. (Dcidment, moi, les rimes en ce moment...

)

Les diffrents types de variablesTout d'abord, je vous conseille vivement de lire le chapitre qu'a crit M@teo21 sur les variables dans son tutoriel sur le C. Je pense que vous y verrez plus clair. Bon. En Java, nous avons deux type de variables : des variables de type simple ou "primitif", des variables de type complexe ou encore des objets. Ce qu'on appelle des types simples, ou types primitifs, en Java ce sont tout bonnement des nombres entiers, des nombres rels, des boolens ou encore des caractres. Mais vous allez voir qu'il y a plusieurs faons de dclarer certains de ces types.

Commenons par les variables de type numrique- Le type byte (1 octet) peut contenir les entiers entre -128 et +127. Ex. : Code : Java byte temperature; temperature = 64;

- Le type short (2 octets) contient les entiers compris entre -32768 et +32767. Ex. : Code : Java short vitesseMax; vitesseMax = 32000;

- Le type int (4 octets) va de -2*109 2*109 (2 et 9 zros derrire... ce qui fait dj un joli nombre). Ex. : Code : Java int temperatureSoleil;

www.siteduzero.com

Partie 1 : Bien commencer en JavatemperatureSoleil = 15600000;

11/648

C'est en kelvins... - Le type long(8 octets) de -9*1018 9*1018 (encore plus gros...). Ex. : Code : Java long anneeLumiere; anneeLumiere = 9460700000000000;

- Le type float (4 octets) correspond des nombres avec virgule flottante. Ex. : Code : Java float pi; pi = 3.141592653f;

ou encore Code : Java float nombre; nombre = 2.0f;

V ous remarquerez que nous ne mettons pas de virgule mais un point ! Et vous remarquerez aussi que mme si le nombre en question est rond, on met tout de mme .0 derrire celui-ci ! - Le type double (8 octets) est identique float, si ce n'est qu'il contient un nombre plus grand derrire la virgule. Ex. : Code : Java double division; division = 0.333333333333333333333333333333333333333333334;

Nous avons aussi des variables stockant du caractre- Le type char contient UN caractre stock entre de simples quotes ' ' comme ceci... Ex. : Code : Java char caractere; caractere = 'A';

Nous avons aussi le type boolen- Le type boolean qui lui contient true (vrai) ou false (faux). Ex. : Code : Java boolean question; question = true;

www.siteduzero.com

Partie 1 : Bien commencer en Java

12/648

Et aussi le type String- Celle-ci correspond de la chane de caractres. Ici, il ne s'agit pas d'une variable mais d'un objet qui instancie une classe qui existe dans Java ; nous pouvons l'initialiser en utilisant l'oprateur unaire new() dont on se sert pour rserver un emplacement mmoire un objet (mais nous reparlerons de tout ceci dans la partie deux, lorsque nous verrons les classes), ou alors lui affecter directement la chane de caractres. V ous verrez que celle-ci s'utilise trs facilement et se dclare comme ceci : Ex. : Code : Java String phrase; phrase = "Titi et gros minet"; //Deuxime mthode de dclaration de type String String str = new String(); str = "Une autre chane de caractres"; //La troisime String string = "Une autre chane"; //Et une quatrime pour la route String chaine = new String("Et une de plus ! ");

Attention : String commence par une majuscule ! Et lors de l'initialisation, on utilise ici des doubles quotes " " .

En fait, String n'est pas un type de variable mais un objet. Notre variable est "un objet", on dit aussi "une instance", ici, une instance de la classe String. Nous y reviendrons lorsque nous aborderons les objets. On te croit sur parole, mais pourquoi String commence par une majuscule et pas les autres ?

C'est simple. Il s'agit d'une convention de nommage. En fait, c'est une faon d'appeler nos classes, nos variables, etc. Il faut que vous essayiez de respecter cette convention au maximum. Cette convention, la voici : tous vos noms de classes doivent commencer par une majuscule ! tous vos noms de variables doivent commencer par une minuscule. Si un nom de variable est un nom compos, celui-ci commence par une minuscule et son compos par une majuscule. Et ce, sans sparation. Tout ceci sans

accent ! !

Je sais que la premire classe que je vous ai demand de crer ne respecte pas cette convention, mais je ne voulais pas vous dire a ce moment-l... Donc, prsent, je vous demanderai de ne pas oublier ces rgles ! Sinon ! Chtiment corporel. V quelques exemples de noms de classes et de variables : oici Code : Java public class Toto{} public class Nombre{} public class TotoEtTiti{} String chaine; String chaineDeCaracteres; int nombre; int nombrePlusGrand; //...

www.siteduzero.com

Partie 1 : Bien commencer en Java

13/648

Donc, pour en revenir au pourquoi du comment, je vous ai dit que les variables de type String sont des objets. Les objets sont dfinis par une ossature (un squelette) qui est en fait une classe. Ici, nous utilisons un objet String qui est dfini dans une classe qui s'appelle "String" ; c'est pourquoi String a une majuscule et pas int, float... qui eux ne sont pas dfinis par une classe. Pfiou ! a en fait des choses retenir d'un coup ! Mais je ne vous cache pas que les deux premiers types de variables ne sont pas trop utiliss... Chose importante : veillez bien respecter la casse (majuscules et minuscules) car une dclaration de CHAR la place de char ou autre chose provoquera une erreur, tout comme une variable de type string la place de String ! Alors faites bien attention lors de vos dclarations de variables... Sinon une petite astuce quand mme, enfin deux plutt ! On peut trs bien compacter la phase de dclaration et d'initialisation en une seule phase ! Comme ceci : Code : Java int entier float pi = char carac String mot = 32; 3.1416f; = 'z'; = new String("Coucou");

Et lorsque nous avons plusieurs variables d'un mme type, nous pouvons compacter tout ceci en une dclaration comme ceci : Code : Java int nbre1 = 2, nbre2 = 3, nbre3 = 0;

Ici, toutes les variables sont des entiers et toutes initialises. Bon, t'es bien mignon, mais on code quand, nous ?

Minute papillon ! On va y arriver ! Mais avant, nous avons encore quelque chose de trs important voir pour pouvoir travailler sur et avec nos variables : Les oprateurs arithmtiques

Les oprateurs arithmtiquesCeci est notre avant dernire ligne droite avant de commencer coder ! Et aprs, vous regretterez le temps o vous n'aviez pas vous creuser la tte !! Bon, allez ! Je vois bien que vous brlez d'impatience, alors on va y aller tout de suite.

Les oprateurs arithmtiquesCe sont ceux que l'on apprend l'cole primaire...

+ permet d'ajouter deux variables numriques (mais aussi de concatner des chanes de caractres ! Ne vous inquitez pas, onaura l'occasion d'y revenir).

- permet de soustraire deux variables numriques. * permet de multiplier deux variables numriques. / Permet de diviser deux variables numriques.(mais je crois que vous aviez devin ). % permet de renvoyer le reste de la division de deux variables de type numriques, cet oprateur s'appelle le modulo.Quelques exemples de calculCode : Java int nbre1, nbre2, nbre3;//dclaration des variables

www.siteduzero.com

Partie 1 : Bien commencer en Javanbre1 = nbre2 = nbre3 = 0;//initialisation nbre1 nbre2 nbre3 nbre1 nbre2 nbre3 aucun = 1 + 3; // ici nbre1 vaut 4 = 2 * 6; // ici nbre2 vaut 12 = nbre2 / nbre1; //ici nbre3 vaut 3 = 5 % 2; //ici nbre1 vaut 1 car 5 = 2 * 2 + 1 = 99 % 8; //ici nbre2 vaut 3 car 99 = 8 * 12 + 3 = 6 % 3; //et l, nbre3 vaut 0 car la division n'a reste

14/648

Ici, nous voyons bien que nous pouvons affecter des oprations sur des nombres nos variables mais aussi affecter des oprations sur des variables de mme type !! Je me doute bien que le modulo est assez difficile assimiler. V une utilisation assez simple : Pour dterminer si un oici entier est pair, il suffit de voir si cet entier modulo 2 renvoie 0 .

Maintenant, quelque chose que les personnes qui n'ont jamais programm ont du mal assimiler. Je garde la mme dclaration de variable que ci-dessus. Code : Java int nbre1, nbre2, nbre3; nbre1 = nbre2 = nbre3 = 0; nbre1 nbre1 + 1 = nbre2 nbre2 nbre3 nbre3 nbre1 nbre1 = nbre1 + = nbre1 + 2!!! = nbre1; = nbre2 * = nbre2; = nbre3 / = nbre3; = nbre1 1; 1; 2; //dclaration des variables //initialisation

//nbre1 = lui mme donc 0 + 1 => nbre1 = 1 // nbre1 = 1 (cf ci-dessus) maintenant nbre1 = 1

//nbre2 = nbre1 = 2 //nbre2 = 2 => nbre2 = 2 * 2 = 4 //nbre3 = nbre2 = 4 nbre3; //nbre3 = 4 / 4 = 1 //nbre1 = nbre3 = 1 1;// nbre1 = 1 - 1 = 0

Et l aussi, il existe une syntaxe qui raccourcit l'criture de ce genre d'opration. Regardez bien : Code : Java nbre1 = nbre1 + 1; nbre1 += 1; nbre1++; ++nbre1;

Ces trois syntaxes correspondent exactement la mme opration. La troisime syntaxe sera certainement celle que vous utiliserez le plus... mais ne marche que pour augmenter la valeur de 1 ! Si vous devez augmenter la valeur d'une variable de 2, utilisez les deux syntaxes prcdentes. On appelle cette syntaxe l'incrmentation. La dernire fait la mme chose que la troisime, mais avec une subtilit en plus... Nous en reparlerons dans le chapitre sur les boucles. Sinon, la syntaxe est identique pour la soustraction : Code : Java nbre1 = nbre1 - 1; nbre1 -= 1; nbre1--; --nbre1;

Mme commentaire que pour l'addition sauf qu'ici, la troisime syntaxe s'appelle la dcrmentation.

www.siteduzero.com

Partie 1 : Bien commencer en JavaLes raccourcis pour la multiplication marchent aussi ; regardez plutt : Code : Java nbre1 nbre1 nbre1 nbre1 = nbre1 * 2; *= 2; = nbre1 / 2; /= 2;

15/648

TRES IMPORTANT == On ne peut faire de traitement arithmtique que sur des variables de mme type, sous peine de perdre de la prcision lors du calcul. On ne s'amuse pas diviser un int par un float ! Ou pire, par un char !! Et ceci est valable pour tous les oprateurs arithmtiques et pour tous les types de variables numriques. Essayez de garder une certaine rigueur pour vos calculs arithmtiques.

V les raisons de ma mise en garde. oici Comme je vous l'ai dit plus haut, chaque type de variable a une contenance diffrente et, pour faire simple, nous allons comparer nos variables diffrents rcipients. Une variable de type : byte correspondrait un d coudre. On ne met pas beaucoup de chose dedans... int, un verre. C'est dj plus grand. double, un baril. Pfiou, on en met l-dedans... A partir de l, ce n'est plus que du bon sens. V ous devez facilement voir que vous pouvez mettre le contenu d'un d coudre dans un verre ou un baril. Mais par contre, si vous versez le contenu d'un baril dans un verre... Il y en a plein par terre ! Cela s'appelle : une perte de prcision ! Ainsi, si nous affectons le rsultat d' une opration sur deux variables de type double dans une variable de type int, le rsultat sera de type int et donc ne sera pas un rel mais un entier. Pour afficher le contenu d'une variable dans la console, il vous suffit d'appeler l'instruction : System.out.println(maVariable);, ou encore System.out.print(maDeuxiemeVariable);.

Je suppose que vous voudriez aussi mettre du texte en mme temps que vos variables... Eh bien sachez que l'oprateur + sert aussi comme oprateur de concatnation, c'est--dire qu'il permet de mixer du texte brut avec des variables. V un exemple d'affichage avec une perte de prcision : oici Code : Java double nbre1 = 10, nbre2 = 3; int resultat = (int)(nbre1 / nbre2); System.out.println("Le rsultat est = " + resultat);

Sachez aussi que vous pouvez tout fait mettre des calculs dans un affichage, comme ceci System.out.print("Rsultat = " + nbre1/nbre2); (le plus joue ici le rle d'oprateur de concatnation) ; ceci vous permet d'conomiser une variable et donc de la mmoire. Mais pour le bien de ce chapitre, nous n'allons pas utiliser cette mthode... V ous devez voir que le rsultat fait 3, au lieu de 3.33333333333333... Et je pense que vous tes intrigus par a : int resultat = (int)(nbre1 / nbre2); Avant de vous expliquer, remplacez la ligne cite ci-dessus par celle-ci : int resultat = nbre1 / nbre2; V ous devez voir qu'Eclipse n'aime pas du tout !

www.siteduzero.com

Partie 1 : Bien commencer en JavaPour savoir pourquoi, nous allons voir ce qu'on appelle les conversions ou "cast".

16/648

Les conversions, ou "cast"Comme expliqu plus haut, les variables de type double contiennent plus d'informations que les variables de type int. Ici, il va falloir couter comme il faut... heu, pardon ! Lire comme il faut ! Nous allons voir un truc super important en Java. Ne vous en dplaise, vous serez amens convertir des variables... Conversion de type int vers un autre type numrique D'un type int en type float : Code : Java int i = 123; float j = (float)i;

D'un type int en double : Code : Java int i = 123; double j = (double)i;

Et inversement : Code : Java double i = 1.23; double j = 2.9999999; int k = (int)i; // k vaut 1 k = (int)j; // k vaut 2

Ce type de conversion s'appelle une conversion d'ajustement ou cast de variable. V ous l'avez vu : nous pouvons passer directement d'un type int un type double. Mais ceci ne fonctionnera pas dans le sens inverse sans une perte de prcision. En effet comme vous avez pu le constater, lorsque nous castons un double en int, la valeur de ce double est tronqu. Ce qui signifie que l'int en question prendra la valeur entire du double quelle que soit la valeur des dcimales. Pour en revenir notre ancien problme, il est aussi possible de caster le rsultat d'une opration mathmatique. En mettant celleci entre () et prcde du type de cast souhait. Donc : Code : Java double nbre1 = 10, nbre2 = 3; int resultat = (int)(nbre1 / nbre2); System.out.println("Le rsultat est = " + resultat);

Fonctionne parfaitement. Mais pour un rsultat optimal, vous devez mettre le rsultat de l'opration en type double. Et si on faisait l'inverse ? Si nous dclarons deux entiers et que nous mettons le rsultat dans un double ?

www.siteduzero.com

Partie 1 : Bien commencer en JavaComme ceci ? Code : Java int nbre1 = 3, nbre2 = 2; double resultat = nbre1 / nbre2; System.out.println("Le rsultat est = " + resultat);

17/648

V ous auriez 1 comme rsultat. Je ne cast pas ici, car un double peut contenir un int. Et comme a ?

Code : Java int nbre1 = 3, nbre2 = 2; double resultat = (double)(nbre1 / nbre2); System.out.println("Le rsultat est = " + resultat);

Idem... Comment doit-on faire, alors ?

Avant de vous donner la rponse, vous devez savoir qu'en Java, comme dans d'autres langages d'ailleurs, il y a la notion de priorit d'opration et l, nous en avons un trs bon exemple ! Sachez que l'affectation, le calcul, le cast, le test, l'incrmentation... toutes ces choses sont des oprations ! Et Java les fait dans un certain ordre, suivant une priorit. Dans le cas qui nous intresse, il y a trois oprations : un calcul, un cast de valeur de rsultat de calcul, une affectation dans la variable resultat. Eh bien Java excute cette ligne dans cet ordre ! Il fait le calcul (ici 3/2), il cast le rsultat en double, puis il l'affecte dans notre variable resultat. D'accord, mais pourquoi on n'a pas 1.5, alors ?

C'est simple : lors de la premire opration de Java, la JVM voit un cast effectuer mais sur un rsultat de calcul. La JVM fait ce calcul (division de deux int qui, ici, nous donne 1), puis le cast (toujours 1) et affecte la valeur la variable (encore et toujours 1). Donc, pour avoir un rsultat correct, il faudrait caster chaque nombre avant de faire l'opration, comme ceci : Code : Java int nbre1 = 3, nbre2 = 2; double resultat = (double)(nbre1) / (double)(nbre2); System.out.println("Le rsultat est = " + resultat); //affiche: Le rsultat est = 1.5

Message reu mais... peut-on changer un type numrique en autre chose ?

www.siteduzero.com

Partie 1 : Bien commencer en Java

18/648

Bien sr, je ne dtaillerai pas trop ceci mais maintenant, vous allez transformer l'argument d'un type donn, int par exemple, en String. Voici la mthode appliquer Code : Java int i = 12; String j = new String(); j = j.valueOf(i);

j est donc une variable de type String contenant la chane de caractres 12. Ceci fonctionne aussi avec les autres types numriques. V oyons maintenant comment faire marche arrire, en partant de ce que nous venons de faire. Code : Java int i = 12; String j = new String(); j = j.valueOf(i); int k = Integer.valueOf(j).intValue();

Maintenant, la variable k est de type int, et contient le nombre 12. Il y a l'quivalent de intValue() pour les autres types numrique : floatValue(), doubleValue()... Je suis bien conscient que ces deux chapitres taient riches en vocabulaire, en nouveauts (pour ceux qui n'auraient pas lu les cours de M@teo), mais bon, voil : votre calvaire... ne fait que commencer. Eh oui : tout ceci tait un amuse-bouche ! Maintenant, nous rentrons dans le vif du sujet. Dans tous les cas, si vous n' avez pas eu 20/20 ces deux questionnaires, relisez ces deux chapitres !! Allez on s' y jette : Lire les entres clavier ! TAAAAAAAAUUUUTTTT !

www.siteduzero.com

Partie 1 : Bien commencer en Java

19/648

Lire les entres clavierDans ce chapitre, nous verrons comment lire les entres clavier. Nous survolerons ceci sans voir les diffrents cas d'erreurs que cela peut engendrer. Trve de bavardage, je suis sr que vous tes impatients...

Utilisation de l'objet ScannerJe me doute qu'il vous tardait de pouvoir communiquer avec votre application... Le moment est enfin venu ! Mais je vous prviens, la mthode que je vais vous donner a des failles. Je vous fais confiance pour ne pas rentrer n'importe quoi n'importe quand... Pour les puristes qui me diront "ouais, mais si je rentre a, tu vas te prendre une belle exception dans ta face !", je le sais, mais je ne trouve pas opportun de vous parler des exceptions et de la manire de les capturer maintenant... Bon. Allons-y ! Je vous ai dit que vos variables de type String sont en fait des objets de type String. Pour que Java puisse lire ce que vous tapez au clavier, vous allez devoir utiliser un objet de type Scanner (merci Myhtrys). Je vous rappelle que pour instancier un objet, c'est--dire crer un nouvel objet afin de s'en servir, vous devez utiliser l'oprateur unaire new().

Cet objet peut prendre diffrents paramtres, mais ici, nous n'en utiliserons qu'un. Celui qui correspond justement l'entre standard en Java. Lorsque vous faites System.out.println();, je vous rappelle que vous appliquez la mthode println() sur la sortie standard ; or ici, nous allons utiliser l'entre standard System.in. Donc, avant de dire Java de lire ce que nous allons taper au clavier, nous devrons instancier un objet Scanner. Pour pouvoir utiliser un objet Scanner, nous devons dire Java o trouver cet objet !

Avant de vous expliquer ceci, crez une nouvelle classe et tapez cette ligne de code dans votre mthode main : Code : Java Scanner sc = new Scanner(System.in);

V ous devez avoir une zolie vague rouge sous le mot Scanner. Mais souvenez-vous de l'astuce que je vous avais donne pour le cast de variables. Cliquez sur la croix rouge sur la gauche et double-cliquez sur "Import 'Scanner' java.util ". Et l, l'erreur disparat !

Maintenant, regardez tout au dessus de votre classe, au dessus de la dclaration de celle-ci, vous devez avoir une ligne : Code : Java import java.util.Scanner;

www.siteduzero.com

Partie 1 : Bien commencer en JavaV ce que nous avons fait. Je vous ai dit qu'il fallait dire Java o se trouve la classe Scanner. oil Pour faire ceci, nous devons importer la classe Scanner, grce l'instruction import. La classe que nous voulons se trouve dans le package java.util.

20/648

Tout d'abord, vous devez savoir que le langage Java n'est qu'une multitude de classes ordonnes en packages. Par dfaut, Java incorpore automatiquement un package contenant les fondements de Java : java.lang. C'est dans ce package qu'il y a les variables de bases, la classe System et beaucoup d'autres choses qui vous permettent de faire des programmes. Pour voir le contenu de ce package, vous pouvez allez voir ici. Je pense que vous avez compris qu'un package est en fait un ensemble de classes. En fait, c'est un ensemble de dossiers et de sous-dossiers contenant une ou plusieurs classes. Par exemple, nous avons import tout l'heure la classe Scanner qui se trouve dans le package java.util. Remplacez les . par des /, l'arborescence des dossiers est donc java/util/ et dans ce dossier se trouve le fichier Scanner.class ! V ous verrez ceci plus en dtail lorsque nous ferons nos propre packages. Les classes qui se trouvent dans les autres packages que java.lang sont importer la main dans vos classes Java pour pouvoir vous en servir. La faon dont nous avons import la classe java.util.Scanner dans Eclipse est trs pratique et trs simple. V ous pouvez aussi le faire manuellement en tapant : Code : Java //Ceci import //Ceci import importe la classe Scanner du package java.util java.util.Scanner; importe toutes les classes du package java.util java.util.*;

Si vous faites vos imports manuellement, n'oubliez surtout pas le ; la fin ! Maintenant que vous avez assimil ceci, nous pouvons retourner nos moutons !

Rcuprez ce que vous tapezRetournons notre morceau de code, pour mmoire : Code : Java Scanner sc = new Scanner(System.in);

Afin de vous prparer saisir des informations, veuillez afficher un message l'cran ; nous avons donc : Code : Java Scanner sc = new Scanner(System.in); System.out.println("Veuillez saisir un mot :");

Maintenant, voici l'instruction pour permettre Java de rcuprer ce que vous avez saisi et ensuite de l'afficher : Code : Java Scanner sc = new Scanner(System.in); System.out.println("Veuillez saisir un mot :"); String str = sc.nextLine(); System.out.println("Vous avez saisi : " + str);

Une fois l'application lance, le message que vous avez crit auparavant s'affiche dans la console, en bas dans Eclipse (vous avez l'habitude, maintenant ).

www.siteduzero.com

Partie 1 : Bien commencer en Java

21/648

Pensez cliquer dans la console, aprs votre message, afin que ce que vous saisissez soit crit dans la console, pour que Java puisse rcuprer ce que vous avez inscrit !

Alors ? Heureux ? V votre premire saisie clavier ! Comme vous avez pu le constater, l'instruction nextLine() renvoie une chane de caractres. Si oil vous avez essay de remplacer la variable de type String par une variable d'un autre type, vous avez d voir qu'Eclipse n'apprcie pas du tout... Et si vous avez cliqu sur la croix rouge pour corriger le problme, vous constatez que la seule solution qu'il vous propose est de changer le type de votre variable pour le type String. V ous aurez remarqu aussi qu'Eclipse vous simplifie la vie au maximum. Lorsque vous tapez "sc.", Eclipse vous propose une liste de mthodes appartenant cet objet. Si vous remplacez la ligne de code qui rcupre une chane de caractres comme suit : Code : Java Scanner sc = new Scanner(System.in); System.out.println("Veuillez saisir un nombre :"); int str = sc.nextInt(); System.out.println("Vous avez saisi le nombre : " + str);

vous devez voir que lorsque vous utilisez votre variable de type Scanner, et o vous tapez le point permettant d'appeler des mthodes de l'objet, Eclipse vous donne une liste de mthodes associes cet objet et, lorsque vous commencez taper le dbut de la mthode nextInt(), le choix se restreint jusqu' ne laisser que cette seule mthode. Excutez et testez ce programme et vous verrez qu'il fonctionne la perfection ! Sauf... si vous saisissez autre chose qu'un entier ! C'est ce que je vous disais au dpart de ce chapitre. L'objet essaie de rcuprer un entier, mais si vous lui donnez autre chose, une exception est leve ! Nous verrons ceci lorsque nous programmerons des objets... Pour les curieux, voici ce que donnerait l'erreur :

www.siteduzero.com

Partie 1 : Bien commencer en Java

22/648

V ous savez maintenant que pour lire un int, vous devez utiliser nextInt(). De faon gnrale, dites-vous que pour rcuprer un type de variable, il vous suffit d'appeler next (rappelez-vous de la convention de nommage !). Bon. C'est mon jour de bont : Code : Java Scanner sc = new Scanner(System.in); int i = sc.nextInt(); double d = sc.nextDouble(); long l = sc.nextLong(); byte b = sc.nextByte(); //etc

Attention : il y a un type de variable primitive qui n'est pas pris en compte par la classe Scanner ; il s'agit des variables de type char.

V comment on pourrait rcuprer un caractre : oici Code : Java System.out.println("Saisissez une lettre :"); Scanner sc = new Scanner(System.in); String str = sc.nextLine(); char carac = str.charAt(0); System.out.println("Vous avez saisi le caractre : " + carac);

Qu'est-ce que nous avons fait ici ? Nous avons rcupr une chane de caractres, puis nous avons utilis une mthode de l'objet String (ici, charAt(0) ) afin de rcuprer le premier caractre saisi ! Mme si vous tapez une longue chane de caractres, l'instruction charAt(0) ne renverra que le premier caractre...

www.siteduzero.com

Partie 1 : Bien commencer en Java

23/648

V ous devez vous demander pourquoi charAt(0) et non charAt(1) ? Ne vous inquitez pas, nous aborderons ce point lorsque nous verrons les tableaux...

Jusqu' ce qu'on aborde les exceptions, je vous demande d'tre rigoureux et de faire attention ce que vous attendez comme donne afin d'util