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

10601 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 13/09/2012

2/539

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

Installer les outils de dveloppement ................................................................................................................................ 8Installer les outils ncessaires .................................................................................................................................................................................... 8 JRE ou JDK ................................................................................................................................................................................................................. 8 Eclipse IDE .................................................................................................................................................................................................................. 9 Prsentation rapide de l'interface .............................................................................................................................................................................. 11 Votre premier programme ......................................................................................................................................................................................... 17 Hello World ................................................................................................................................................................................................................ 20 Compilation en ligne de commande (Windows) ........................................................................................................................................................ 21 En rsum ................................................................................................................................................................................................................. 24

Les variables et les oprateurs ....................................................................................................................................... 25Petit rappel ................................................................................................................................................................................................................ Les diffrents types de variables ............................................................................................................................................................................... Les oprateurs arithmtiques .................................................................................................................................................................................... Les conversions, ou cast ..................................................................................................................................................................................... Depuis Java 7 : le formatage des nombres ............................................................................................................................................................... En rsum ................................................................................................................................................................................................................. 25 26 30 32 34 35

Lire les entres clavier .................................................................................................................................................... 35La classe Scanner ..................................................................................................................................................................................................... 36 Rcuprer ce que vous tapez ................................................................................................................................................................................... 37 En rsum ................................................................................................................................................................................................................. 39

Les conditions ................................................................................................................................................................. 40La structure if... else .................................................................................................................................................................................................. Les conditions multiples ............................................................................................................................................................................................ La structure switch .................................................................................................................................................................................................... La condition ternaire .................................................................................................................................................................................................. En rsum ................................................................................................................................................................................................................. 40 42 43 44 45

Les boucles ..................................................................................................................................................................... 46La boucle while .......................................................................................................................................................................................................... 46 La boucle do... while .................................................................................................................................................................................................. 49 La boucle for .............................................................................................................................................................................................................. 50 En rsum ................................................................................................................................................................................................................. 52

TP : conversion Celsius - Fahrenheit .............................................................................................................................. 52laboration ................................................................................................................................................................................................................ 53 Correction .................................................................................................................................................................................................................. 55

Les tableaux .................................................................................................................................................................... 58Tableau une dimension .......................................................................................................................................................................................... Les tableaux multidimensionnels .............................................................................................................................................................................. Utiliser et rechercher dans un tableau ...................................................................................................................................................................... En rsum ................................................................................................................................................................................................................. Quelques mthodes utiles ......................................................................................................................................................................................... Crer sa propre mthode .......................................................................................................................................................................................... La surcharge de mthode ......................................................................................................................................................................................... En rsum ................................................................................................................................................................................................................. 58 58 59 63 64 66 69 70

Les mthodes de classe ................................................................................................................................................. 64

Partie 2 : Java Orient Objet ............................................................................................................. 71Votre premire classe ..................................................................................................................................................... 71Structure de base ...................................................................................................................................................................................................... Les constructeurs ...................................................................................................................................................................................................... Accesseurs et mutateurs ........................................................................................................................................................................................... Les variables de classes ........................................................................................................................................................................................... Le principe d'encapsulation ....................................................................................................................................................................................... En rsum ................................................................................................................................................................................................................. Le principe de l'hritage ............................................................................................................................................................................................ Le polymorphisme ..................................................................................................................................................................................................... Depuis Java 7 : la classe Objects ............................................................................................................................................................................. En rsum ................................................................................................................................................................................................................. 71 72 76 82 83 84 85 89 94 95

L'hritage ......................................................................................................................................................................... 85

Modliser ses objets grce UML .................................................................................................................................. 95Prsentation d'UML ................................................................................................................................................................................................... 96 Modliser ses objets .................................................................................................................................................................................................. 97 Modliser les liens entre les objets ........................................................................................................................................................................... 97 En rsum ............................................................................................................................................................................................................... 100

Les packages ................................................................................................................................................................ 101Cration d'un package ............................................................................................................................................................................................ 101 Droits d'accs entre les packages ........................................................................................................................................................................... 102 En rsum ............................................................................................................................................................................................................... 103

Les classes abstraites et les interfaces ........................................................................................................................ 104Les classes abstraites ............................................................................................................................................................................................. 104

www.siteduzero.com

Sommaire

3/539

Une classe Animal trs abstraite ............................................................................................................................................................................. 105 toffons notre exemple ........................................................................................................................................................................................... 107 Les interfaces .......................................................................................................................................................................................................... 112 Votre premire interface .......................................................................................................................................................................................... 113 Implmentation de l'interface Rintintin ..................................................................................................................................................................... 114 Le pattern strategy ................................................................................................................................................................................................... 116 Posons le problme ................................................................................................................................................................................................. 116 Un problme supplmentaire .................................................................................................................................................................................. 123 Une solution simple et robuste : le pattern strategy ................................................................................................................................................ 127 En rsum ............................................................................................................................................................................................................... 133

Les exceptions .............................................................................................................................................................. 135Le bloc try{...} catch{...} ........................................................................................................................................................................................... Les exceptions personnalises ............................................................................................................................................................................... La gestion de plusieurs exceptions ......................................................................................................................................................................... Depuis Java 7 : le multi-catch ................................................................................................................................................................................. En rsum ............................................................................................................................................................................................................... 135 136 140 141 142

Les numrations .......................................................................................................................................................... 142Avant les numrations ........................................................................................................................................................................................... 143 Une solution : les enum ........................................................................................................................................................................................... 143 En rsum ............................................................................................................................................................................................................... 146

Les collections d'objets ................................................................................................................................................. 146Les diffrents types de collections .......................................................................................................................................................................... Les objets List ......................................................................................................................................................................................................... L'objet LinkedList ..................................................................................................................................................................................................... L'objet ArrayList ....................................................................................................................................................................................................... Les objets Map ........................................................................................................................................................................................................ L'objet Hashtable ..................................................................................................................................................................................................... L'objet HashMap ..................................................................................................................................................................................................... Les objets Set ......................................................................................................................................................................................................... L'objet HashSet ....................................................................................................................................................................................................... En rsum ............................................................................................................................................................................................................... Principe de base ..................................................................................................................................................................................................... Plus loin dans la gnricit ! ................................................................................................................................................................................... Gnricit et collections .......................................................................................................................................................................................... Hritage et gnricit .............................................................................................................................................................................................. En rsum ............................................................................................................................................................................................................... Utilisation de java.io ................................................................................................................................................................................................ L'objet File ............................................................................................................................................................................................................... Les objets FileInputStream et FileOutputStream .................................................................................................................................................... Les objets FilterInputStream et FilterOutputStream ................................................................................................................................................ Les objets ObjectInputStream et ObjectOutputStream ........................................................................................................................................... Les objets CharArray(Writer/Reader) et String(Writer/Reader) ............................................................................................................................... Les classes File(Writer/Reader) et Print(Writer/Reader) ......................................................................................................................................... Utilisation de java.nio .............................................................................................................................................................................................. Depuis Java 7 : nio II ............................................................................................................................................................................................... Le pattern decorator ................................................................................................................................................................................................ En rsum ............................................................................................................................................................................................................... 147 147 148 149 150 150 151 151 151 152 153 156 157 159 162 164 164 165 169 173 177 179 180 183 186 190

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

Les flux d'entre/sortie .................................................................................................................................................. 164

Java et la rflexivit ....................................................................................................................................................... 190L'objet Class ............................................................................................................................................................................................................ 191 Instanciation dynamique ......................................................................................................................................................................................... 195 En rsum ............................................................................................................................................................................................................... 198

Partie 3 : Java et la programmation vnementielle ....................................................................... 198Notre premire fentre .................................................................................................................................................. 199L'objet JFrame ......................................................................................................................................................................................................... L'objet JPanel .......................................................................................................................................................................................................... Les objets Graphics et Graphics2D ........................................................................................................................................................................ L'objet Graphics ...................................................................................................................................................................................................... L'objet Graphics2D .................................................................................................................................................................................................. En rsum ............................................................................................................................................................................................................... 199 203 204 204 212 214

Le fil rouge : une animation ........................................................................................................................................... 215Cration de l'animation ............................................................................................................................................................................................ 215 Amliorations .......................................................................................................................................................................................................... 218 En rsum ............................................................................................................................................................................................................... 223

Positionner des boutons ................................................................................................................................................ 223Utiliser la classe JButton ......................................................................................................................................................................................... 224 Positionner son composant : les layout managers .................................................................................................................................................. 225 En rsum ............................................................................................................................................................................................................... 237

Interagir avec des boutons ............................................................................................................................................ 238Une classe Bouton .................................................................................................................................................................................................. 239 Interactions avec la souris : l'interface MouseListener ............................................................................................................................................ 241 Interagir avec son bouton ........................................................................................................................................................................................ 246 Dclencher une action : l'interface ActionListener ................................................................................................................................................... 246 Parler avec sa classe intrieure .............................................................................................................................................................................. 252 Les classes anonymes ............................................................................................................................................................................................ 256 Contrler son animation : lancement et arrt .......................................................................................................................................................... 258 tre l'coute de ses objets : le design pattern Observer ...................................................................................................................................... 262 Posons le problme ................................................................................................................................................................................................ 262 Des objets qui parlent et qui coutent : le pattern observer .................................................................................................................................... 264 Le pattern observer : le retour ................................................................................................................................................................................. 268

www.siteduzero.com

Sommaire

4/539

Cadeau : un bouton personnalis optimis ............................................................................................................................................................. 269 En rsum ............................................................................................................................................................................................................... 271

TP : une calculatrice ...................................................................................................................................................... 272laboration .............................................................................................................................................................................................................. Conception .............................................................................................................................................................................................................. Correction ................................................................................................................................................................................................................ Gnrer un .jar ........................................................................................................................................................................................................ Une classe hrite de Thread ................................................................................................................................................................................. Utiliser l'interface Runnable ..................................................................................................................................................................................... Synchroniser ses threads ........................................................................................................................................................................................ Contrler son animation .......................................................................................................................................................................................... Depuis Java 7 : le pattern Fork/Join ........................................................................................................................................................................ En rsum ............................................................................................................................................................................................................... Les listes : l'objet JComboBox ................................................................................................................................................................................ Premire utilisation .................................................................................................................................................................................................. L'interface ItemListener ........................................................................................................................................................................................... Changer la forme de notre animation ...................................................................................................................................................................... Les cases cocher : l'objet JCheckBox .................................................................................................................................................................. Premire utilisation .................................................................................................................................................................................................. Un pseudomorphing pour notre animation .............................................................................................................................................................. Le petit cousin : l'objet JRadioButton ...................................................................................................................................................................... Les champs de texte : l'objet JTextField .................................................................................................................................................................. Premire utilisation .................................................................................................................................................................................................. Un objet plus restrictif : le JFormattedTextField ...................................................................................................................................................... Contrle du clavier : l'interface KeyListener ............................................................................................................................................................ En rsum ............................................................................................................................................................................................................... Les botes de dialogue ............................................................................................................................................................................................ Les botes de confirmation ...................................................................................................................................................................................... Les botes de saisie ................................................................................................................................................................................................ Des botes de dialogue personnalises .................................................................................................................................................................. Les menus ............................................................................................................................................................................................................... Faire son premier menu .......................................................................................................................................................................................... Les raccourcis clavier .............................................................................................................................................................................................. Faire un menu contextuel ........................................................................................................................................................................................ Les barres d'outils ................................................................................................................................................................................................... Utiliser les actions abstraites ................................................................................................................................................................................... En rsum ............................................................................................................................................................................................................... Cahier des charges ................................................................................................................................................................................................. Prrequis ................................................................................................................................................................................................................. Correction ................................................................................................................................................................................................................ Amliorations possibles .......................................................................................................................................................................................... 272 272 272 276 282 286 290 290 291 300 301 301 303 304 309 309 310 316 318 318 319 321 325 326 328 331 333 340 340 348 350 357 361 363 364 365 365 370

Excuter des tches simultanment ............................................................................................................................. 282

Les champs de formulaire ............................................................................................................................................. 300

Les menus et botes de dialogue .................................................................................................................................. 326

TP : l'ardoise magique ................................................................................................................................................... 363

Conteneurs, sliders et barres de progression ............................................................................................................... 370Autres conteneurs ................................................................................................................................................................................................... 371 L'objet JSplitPane .................................................................................................................................................................................................... 371 L'objet JScrollPane .................................................................................................................................................................................................. 374 L'objet JTabbedPane ............................................................................................................................................................................................... 376 L'objet JDesktopPane combin des JInternalFrame ............................................................................................................................................ 381 L'objet JWindow ...................................................................................................................................................................................................... 382 Le JEditorPane ........................................................................................................................................................................................................ 382 Le JSlider ................................................................................................................................................................................................................ 384 La JProgressBar ...................................................................................................................................................................................................... 385 Enjoliver vos IHM .................................................................................................................................................................................................... 386 En rsum ............................................................................................................................................................................................................... 387

Les arbres et leur structure ........................................................................................................................................... 389La composition des arbres ...................................................................................................................................................................................... Des arbres qui vous parlent .................................................................................................................................................................................... Dcorez vos arbres ................................................................................................................................................................................................. Modifier le contenu de nos arbres ........................................................................................................................................................................... En rsum ............................................................................................................................................................................................................... Premiers pas ........................................................................................................................................................................................................... Gestion de l'affichage .............................................................................................................................................................................................. Les cellules ............................................................................................................................................................................................................. Contrlez l'affichage ................................................................................................................................................................................................ Interaction avec l'objet JTable ................................................................................................................................................................................. Ajouter des lignes et des colonnes ......................................................................................................................................................................... En rsum ............................................................................................................................................................................................................... 389 393 396 401 407 408 409 409 415 419 425 426

Les interfaces de tableaux ............................................................................................................................................ 408

TP : le pendu ................................................................................................................................................................. 428Cahier des charges ................................................................................................................................................................................................. 428 Prrequis ................................................................................................................................................................................................................. 429 Correction ................................................................................................................................................................................................................ 430

Mieux structurer son code : le pattern MVC .................................................................................................................. 432Premiers pas ........................................................................................................................................................................................................... 432 Le modle ............................................................................................................................................................................................................... 433 Le contrleur ........................................................................................................................................................................................................... 436 La vue ...................................................................................................................................................................................................................... 438 En rsum ............................................................................................................................................................................................................... 441

www.siteduzero.com

Partager

5/539442 445 448 452 457 461 463 464 466 470

Le Drag'n Drop .............................................................................................................................................................. 441Prsentation ............................................................................................................................................................................................................ Fonctionnement ...................................................................................................................................................................................................... Crer son propre TransferHandler .......................................................................................................................................................................... Activer le drop sur un JTree .................................................................................................................................................................................... Effet de dplacement .............................................................................................................................................................................................. En rsum ............................................................................................................................................................................................................... Prsentation des protagonistes ............................................................................................................................................................................... Utiliser l'EDT ............................................................................................................................................................................................................ La classe SwingWorker ................................................................................................................................................................................ En rsum ...............................................................................................................................................................................................................

Mieux grer les interactions avec les composants ....................................................................................................... 462

Partie 4 : Interactions avec les bases de donnes .......................................................................... 470JDBC : la porte d'accs aux bases de donnes ........................................................................................................... 471Rappels sur les bases de donnes ......................................................................................................................................................................... Quelle base de donnes utiliser .............................................................................................................................................................................. Installation de PostgreSQL ...................................................................................................................................................................................... Prparer la base de donnes .................................................................................................................................................................................. Crer la base de donnes ....................................................................................................................................................................................... Crer les tables ....................................................................................................................................................................................................... Se connecter la base de donnes ........................................................................................................................................................................ Connexion ............................................................................................................................................................................................................... En rsum ............................................................................................................................................................................................................... 471 472 472 475 476 478 484 486 488

Fouiller dans sa base de donnes ................................................................................................................................ 489Le couple Statement -- ResultSet ........................................................................................................................................................................... 489 Entranons-nous ...................................................................................................................................................................................................... 492 Statement ................................................................................................................................................................................................................ 496 Les requtes prpares .......................................................................................................................................................................................... 497 ResultSet : le retour ................................................................................................................................................................................................. 499 Modifier des donnes .............................................................................................................................................................................................. 503 Statement, toujours plus fort ................................................................................................................................................................................... 504 Grer les transactions manuellement ..................................................................................................................................................................... 506 En rsum ............................................................................................................................................................................................................... 508

Limiter le nombre de connexions .................................................................................................................................. 508Pourquoi ne se connecter qu'une seule fois ? ........................................................................................................................................................ Le pattern singleton ................................................................................................................................................................................................. Le singleton dans tous ses tats ............................................................................................................................................................................. En rsum ............................................................................................................................................................................................................... 509 509 511 513

TP : un testeur de requtes ........................................................................................................................................... 514Cahier des charges ................................................................................................................................................................................................. 514 Quelques captures d'cran ..................................................................................................................................................................................... 514 Correction ................................................................................................................................................................................................................ 515

Lier ses tables avec des objets Java : le pattern DAO ................................................................................................. 516Avant toute chose .................................................................................................................................................................................................... 517 Le pattern DAO ....................................................................................................................................................................................................... 521 Contexte .................................................................................................................................................................................................................. 521 Le pattern DAO ....................................................................................................................................................................................................... 521 Premier test ............................................................................................................................................................................................................. 527 Le pattern factory .................................................................................................................................................................................................... 529 Fabriquer vos DAO .................................................................................................................................................................................................. 530 De l'usine la multinationale ................................................................................................................................................................................... 533 En rsum ............................................................................................................................................................................................................... 538

www.siteduzero.com

Partager

6/539

Apprenez programmer en Java

Par

cysboy

Mise jour : 13/09/2012 Difficult : Intermdiaire 70 314 visites depuis 7 jours, class 4/793 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 .

www.siteduzero.com

Apprenez programmer en Java

7/539

Exemples de programmes dvelopps 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 ! Un grand merci pour ton travail et ton soutien !

www.siteduzero.com

Partie 1 : Bien commencer en Java

8/539

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.

Installer les outils de dveloppementL'un des principes phares de Java rside dans sa machine virtuelle : celle-ci assure tous les dveloppeurs Java qu'un programme sera utilisable avec tous les systmes d'exploitation sur lesquels est installe une machine virtuelle Java. Lors de la phase de compilation de notre code source, celui-ci prend une forme intermdiaire appele byte code : c'est le fameux code inintelligible pour votre machine, mais interprtable par la machine virtuelle Java. Cette dernire porte un nom : on parle plus communment de JRE (Java Runtime Environment). Plus besoin de se soucier des spcificits lies tel ou tel OS (Operating System, soit systme d'exploitation). Nous pourrons donc nous consacrer entirement notre programme. Afin de nous simplifier la vie, nous allons utiliser un outil de dveloppement, ou IDE (Integrated Development Environment), pour nous aider crire nos futurs codes source Nous allons donc avoir besoin de diffrentes choses afin de pouvoir crer des programmes Java : la premire est ce fameux JRE !

Installer les outils ncessaires JRE ou JDKTlchargez votre environnement Java sur le site d'Oracle. Choisissez la dernire version stable (figure suivante).

Encart de

tlchargement V ous avez sans doute remarqu qu'on vous propose de tlcharger soit le JRE, soit le JDK (Java Development Kit). La diffrence entre ces deux environnements est crite, mais pour les personnes fches avec l'anglais, sachez que le JRE contient tout le ncessaire pour faire en sorte que vos programmes Java puissent tre excuts sur votre ordinateur ; le JDK, en plus de contenir le JRE, contient tout le ncessaire pour dvelopper, compiler

www.siteduzero.com

Partie 1 : Bien commencer en JavaL'IDE contenant dj tout le ncessaire pour le dveloppement et la compilation, nous n'avons besoin que du JRE. Une fois que vous avez cliqu sur Download JRE , vous arrivez sur la page correspondante (figure suivante).

9/539

Choix du systme

d'exploitation Cochez la case : Accept License Agreement puis cliquez sur le lien correspondant votre systme d'exploitation (x86 pour un systme 32 bits et x64 pour un systme 64 bits). Une popup de tlchargement doit alors apparatre. Je vous ai dit que Java permet de dvelopper diffrents types d'applications : il y a donc des environnements permettant de crer des programmes pour diffrentes plates-formes. J2SE (Java 2 Standard Edition, celui qui nous intresse dans cet ouvrage) : permet de dvelopper des applications dites client lourd , par exemple Word, Excel, la suite OpenOffice.org Toutes ces applications sont des clients lourds . C'est ce que nous allons faire dans ce livre. J2EE (Java 2 Enterprise Edition) : permet de dvelopper des applications web en Java. On parle aussi de clients lgers. J2ME (Java 2 Micro Edition) : permet de dvelopper des applications pour appareils portables, comme des tlphones portables, des PDA

Eclipse IDEAvant toute chose, quelques mots sur le projet Eclipse. Eclipse IDE est un environnement de dveloppement libre permettant de crer des programmes dans de nombreux langages de programmation (Java, C++, PHP). C'est en somme l'outil que nous allons utiliser pour programmer. Eclipse IDE est lui-mme principalement crit en Java.

Je vous invite donc tlcharger Eclipse IDE. Accdez la page de tlchargement puis choisissez Eclipse IDE for Java Developers , en choisissant la version d'Eclipse correspondant votre OS (Operating System = systme d'exploitation) (figure suivante).

Version d'Eclipse IDE

www.siteduzero.com

Partie 1 : Bien commencer en Java

10/539

Slectionnez maintenant le miroir que vous souhaitez utiliser pour obtenir Eclipse. V oil, vous n'avez plus qu' attendre la fin du tlchargement. Pour 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. Notre logiciel va donc permettre de traduire nos futurs programmes Java en langage byte code, comprhensible uniquement par votre JRE, frachement install. 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 ses fonctionnalits sont dveloppes en tant que plug-ins. Pour faire court, si vous voulez ajouter des fonctionnalits Eclipse, 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 Eclipse, 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'Eclipse. Il vous faut donc copier le contenu des dossiers de votre plug-in vers le dossier correspondant dans Eclipse (plugins dans plugins, et features dans features).

V ous devez maintenant avoir une archive contenant Eclipse. Dcompressez-la o vous voulez, puis entrez dans ce dossier (figure suivante). Cela fait, lancez Eclipse.

Contenu du dossier Eclipse

www.siteduzero.com

Partie 1 : Bien commencer en Java

11/539

Ici (figure suivante), Eclipse vous demande dans quel dossier vous souhaitez enregistrer vos projets ; sachez que rien ne vous empche de spcifier un autre dossier que celui propos par dfaut.

Premire

fentre Eclipse Une fois cette tape effectue, vous arrivez sur la page d'accueil d'Eclipse. Si vous avez envie d'y jeter un oeil il, allez-y.

Prsentation rapide de l'interfaceJe vais maintenant vous faire faire un tour rapide de l'interface d'Eclipse.

(figure suivante)

Le menu File

www.siteduzero.com

Partie 1 : Bien commencer en Java

12/539

Menu File

C'est ici que nous pourrons crer de nouveaux projets Java, les enregistrer et les exporter le cas chant. Les raccourcis retenir sont : ALT + SHIFT + N : nouveau projet ; CTRL + S : enregistrer le fichier o l'on est positionn ; CTRL + SHIFT + S : tout sauvegarder ; CTRL + W : fermer le fichier o l'on est positionn ; CTRL + SHIFT + W : fermer tous les fichiers ouverts. (figure suivante)

Le menu Edit

www.siteduzero.com

Partie 1 : Bien commencer en Java

13/539

Menu Edit

Dans ce menu, nous pourrons utiliser les commandes copier , coller , etc. Ici, les raccourcis retenir sont : CTRL CTRL CTRL CTRL CTRL + + + + + C : copier la slection ; X : couper la slection ; V : coller la slection ; A : tout slectionner ; F : chercher-remplacer.

(figure suivante)

Le menu Window

Menu Window Dans celui-ci, nous pourrons configurer Eclipse selon nos besoins. La barre d'outils (figure suivante

www.siteduzero.com

Partie 1 : Bien commencer en Java

14/539

Barre d'outils

Nous avons dans l'ordre : 1. 2. 3. 4. 5. 6. nouveau gnral. Cliquer sur ce bouton revient faire Fichier / Nouveau ; enregistrer. Revient faire CTRL + S ; imprimer ; excuter la classe ou le projet spcifi. Nous verrons ceci plus en dtail ; crer un nouveau projet. Revient faire Fichier / Nouveau / Java Project ; crer une nouvelle classe, c'est--dire en fait un nouveau fichier. Revient faire Fichier / Nouveau / Classe .

Maintenant, je vais vous demander de crer un nouveau projet Java (figures suivante et suivante).

Cration de projet Java - tape 1

www.siteduzero.com

Partie 1 : Bien commencer en Java

15/539

Cration de projet Java - tape 2

Renseignez le nom de votre projet comme je l'ai fait (encadr 1). V ous pouvez aussi voir o sera enregistr ce projet. Un peu plus compliqu, maintenant : vous avez donc un environnement Java sur votre machine, mais dans le cas o vous en auriez plusieurs, vous pouvez aussi spcifier Eclipse quel JRE utiliser pour ce projet (encadr 2). V ous pourrez changer ceci tout moment dans Eclipse en allant dans Window / Preferences , en dpliant l'arbre Java dans la fentre et en choisissant Installed JRE . V ous devriez avoir un nouveau projet dans la fentre de gauche (figure suivante).

Explorateur de projet

Pour boucler la boucle, ajoutons ds maintenant une nouvelle classe dans ce projet comme nous avons appris le faire plus tt. V la fentre sur laquelle vous devriez tomber : figure suivante. oici Une classe est un ensemble de codes contenant plusieurs instructions que doit effectuer votre programme. Ne vous attardez pas trop sur ce terme, nous aurons l'occasion d'y revenir.

www.siteduzero.com

Partie 1 : Bien commencer en Java

16/539

Cration d'une classe

Dans l'encadr 1, nous pouvons voir o seront enregistrs nos fichiers Java. Dans l'encadr 2, nommez votre classe Java ; moi, j'ai choisi sdz1. Dans l'encadr 3, Eclipse vous demande si cette classe a quelque chose de particulier. Eh bien oui ! Cochez public static void main(String[] args) (nous reviendrons plus tard sur ce point) , puis cliquez sur Finish .

www.siteduzero.com

Partie 1 : Bien commencer en Java

17/539

Fentre principale Avant de commencer coder, nous allons explorer l'espace de travail (figure suivante). Dans l'encadr de gauche, vous trouverez le dossier de votre projet ainsi que son contenu. Ici, vous pourrez grer votre projet comme bon vous semble (ajout, suppression). Dans l'encadr positionn au centre, je pense que vous avez devin : c'est ici que nous allons crire nos codes source. Dans l'encadr du bas, c'est l que vous verrez apparatre le contenu de vos programmes ainsi que les erreurs ventuelles ! Et pour finir, c'est dans l'encadr de droite, ds que nous aurons appris coder nos propres fonctions et nos objets, que la liste des mthodes et des variables sera affiche.

Votre premier programmeComme je vous l'ai maintes fois rpt, les programmes Java sont, avant d'tre utiliss par la machine virtuelle, prcompils en byte code (par votre IDE ou la main). Ce byte code n'est comprhensible que par une JVM, et c'est celle-ci qui va faire le lien entre ce code et votre machine. V ous aviez srement remarqu que sur la page de tlchargement du JRE, plusieurs liens taient disponibles : un lien pour Windows ; un lien pour Mac ; un lien pour Linux. Ceci, car la machine virtuelle Java se prsente diffremment selon qu'on se trouve sous Mac, sous Linux ou encore sous Windows. Par contre, le byte code, lui, reste le mme quel que soit l'environnement avec lequel a t dvelopp et prcompil votre programme Java. Consquence directe : quel que soit l'OS sous lequel a t cod un programme Java, n'importe quelle machine pourra l'excuter si elle dispose d'une JVM !

www.siteduzero.com

Partie 1 : Bien commencer en Java

18/539

Tu n'arrtes pas de nous rabcher byte code par-ci, byte code par-l Mais c'est quoi, au juste ?

Eh bien, un byte code (il existe plusieurs types de byte code, mais nous parlons ici de celui cr par Java) n'est rien d'autre qu'un code intermdiaire entre votre code Java et le code machine. Ce code particulier se trouve dans les fichiers prcompils de vos programmes ; en Java, un fichier source a pour extension .java et un fichier prcompil a l'extension .class : c'est dans ce dernier que vous trouverez du byte code. Je vous invite examiner un fichier .class la fin de cette partie (vous en aurez au moins un), mais je vous prviens, c'est illisible ! Par contre, vos fichiers .java sont de simples fichiers texte dont l'extension a t change. V ous pouvez donc les ouvrir, les crer ou encore les mettre jour avec le Bloc-notes de Windows, par exemple. Cela implique que, si vous le souhaitez, vous pouvez crire des programmes Java avec le Bloc-notes ou encore avec Notepad++. Reprenons. V ous devez savoir que tous les programmes Java sont composs d'au moins une classe. Cette classe doit contenir une mthode appele main : ce sera le point de dmarrage de notre programme. Une mthode est une suite d'instructions excuter. C'est un morceau de logique de notre programme. Une mthode contient : un en-tte : celui-ci va tre en quelque sorte la carte d'identit de la mthode ; un corps : le contenu de la mthode, dlimit par des accolades ; une valeur de retour : le rsultat que la mthode va retourner. V ous verrez un peu plus tard qu'un programme n'est qu'une multitude de classes qui s'utilisent l'une l'autre. Mais pour le moment, nous n'allons travailler qu'avec une seule classe.

Je vous avais demand de crer un projet Java ; ouvrez-le (figure suivante).

Mthode principale

V ous voyez la fameuse classe dont je vous parlais ? Ici, elle s'appelle sdz1 . V ous pouvez voir que le mot class est prcd du mot public, dont nous verrons la signification lorsque nous programmerons des objets. Pour le moment, ce que vous devez retenir, c'est que votre classe est dfinie par un mot cl (class), qu'elle a un nom (ici, sdz1) et que son contenu est dlimit par des accolades ({}). Nous crirons nos codes sources entre la mthode main. La syntaxe de cette mthode est toujours la mme : Code : Java public static void main(String[] args){ //Contenu de votre classe }

www.siteduzero.com

Partie 1 : Bien commencer en Java

19/539

Ce sera entre les accolades de la mthode main que nous crirons nos codes source.

Excuse-nous, mais pourquoi as-tu crit //Contenu de votre classe et pas Contenu de votre classe ?

Bonne question ! Je vous ai dit plus haut que votre programme Java, avant de pouvoir tre excut, doit tre prcompil en byte code. Eh bien, la possibilit de forcer le compilateur ignorer certaines instructions existe ! Cest ce quon appelle des commentaires, et deux syntaxes sont disponibles pour commenter son texte. Il y a les commentaires unilignes : introduits par les symboles //, ils mettent tout ce qui les suit en commentaire, du moment que le texte se trouve sur la mme ligne que les //. Code : Java public static void main(String[] args){ //Un commentaire //Un autre //Encore un autre Ceci n'est pas un commentaire ! }

Il y a les commentaires multilignes : ils sont introduits par les symboles /* et se terminent par les symboles */. Code : Java public static void main(String[] args){ /* Un commentaire Un autre Encore un autre */ Ceci n'est pas un commentaire ! }

D'accord, mais a sert quoi ?

C'est simple : au dbut, vous ne ferez que de trs petits programmes. Mais ds que vous aurez pris de la bouteille, leurs tailles et le nombre de classes qui les composeront vont augmenter. V ous serez contents de trouver quelques lignes de commentaires au dbut de votre classe pour vous dire quoi elle sert, ou encore des commentaires dans une mthode qui effectue des choses compliques afin de savoir o vous en tes dans vos traitements Il existe en fait une troisime syntaxe, mais elle a une utilit particulire. Elle permettra de gnrer une documentation pour votre programme : une Javadoc (Java Documentation). Je n'en parlerai que trs peu, et pas dans ce chapitre. Nous verrons cela lorsque nous programmerons des objets, mais pour les curieux, je vous conseille le trs bon cours de dworkin sur ce sujet disponible sur le Site du Zro. partir de maintenant et jusqu' ce que nous programmions des interfaces graphiques, nous allons faire ce qu'on appelle des programmes procduraux. Cela signifie que le programme s'excutera de faon procdurale, c'est--dire qui s'effectue de haut en bas, une ligne aprs l'autre. Bien sr, il y a des instructions qui permettent de rpter des morceaux de code, mais le programme en lui-mme se terminera une fois parvenu la fin du code.

www.siteduzero.com

Partie 1 : Bien commencer en JavaCela vient en opposition la programmation vnementielle (ou graphique) qui, elle, est base sur des vnements (clic de souris, choix dans un menu).

20/539

Hello WorldMaintenant, essayons de taper le code suivant : Code : Java public static void main(String[] args){ System.out.print("Hello World !"); }

N'oubliez surtout pas le " ; " la fin de la ligne ! Toutes les instructions en Java sont suivies d'un point-virgule.

Une fois que vous avez saisi cette ligne de code dans votre mthode main, il vous faut lancer le programme. Si vous vous souvenez bien de la prsentation faite prcdemment, vous devez cliquer sur la flche blanche dans un rond vert (figure suivante). Bouton de lancement du programme

Si vous regardez dans votre console, dans la fentre du bas sous Eclipse, vous devriez voir la figure suivante.

Console d'Eclipse

Expliquons un peu cette ligne de code. Littralement, elle signifie la mthode print() va crire Hello World ! en utilisant l'objet out de la classe System . System : ceci correspond l'appel d'une classe qui se nomme System . C'est une classe utilitaire qui permet surtout d'utiliser l'entre et la sortie standard, c'est--dire la saisie clavier et l'affichage l'cran. out : objet de la classe System qui gre la sortie standard. print : mthode qui crit dans la console le texte pass en paramtre. Si vous mettez plusieurs System.out.print, voici ce qui se passe. Prenons ce code : Code : Java System.out.print("Hello World !"); System.out.print("My name is"); System.out.print("Cysboy");

Lorsque vous l'excutez, vous devriez voir des chanes de caractres qui se suivent sans saut de ligne. Autrement dit, ceci s'affichera dans votre console : Code : Console Hello World !My name isCysboy

www.siteduzero.com

Partie 1 : Bien commencer en Java

21/539

Je me doute que vous souhaiteriez insrer un retour la ligne pour que votre texte soit plus lisible Pour cela, vous avez plusieurs solutions : soit vous utilisez un caractre d'chappement, ici \n ; soit vous utilisez la mthode println() la place de la mthode print(). Donc, si nous reprenons notre code prcdent et que nous appliquons cela, voici ce que a donnerait : Code : Java System.out.print("Hello World ! \n"); System.out.println("My name is"); System.out.println("\nCysboy");

Le rsultat : Code : Console Hello World ! My name is Cysboy

V ous pouvez voir que : lorsque vous utilisez le caractre d'chappement \n, quelle que soit la mthode appele, celle-ci ajoute immdiatement un retour la ligne son emplacement ; lorsque vous utilisez la mthode println(), celle-ci ajoute automatiquement un retour la ligne la fin de la chane passe en paramtre ; un caractre d'chappement peut tre mis dans la mthode println(). J'en profite au passage pour vous mentionner deux autres caractres d'chappement : \r va insrer un retour chariot, parfois utilis aussi pour les retours la ligne ; \t va faire une tabulation. V ous avez srement remarqu que la chane de caractres que l'on affiche est entoure de "". En Java, les guillemets doubles sont des dlimiteurs de chanes de caractres ! Si vous voulez afficher un guillemet double dans la sortie standard, vous devrez l'chapper (terme dsignant le fait de dsactiver : ici, dsactiver la fonction du caractre " ) avec un \, ce qui donnerait : System.out.println("Coucou mon \"chou\" ! ");. Il n'est pas rare de croiser le terme anglais quote pour dsigner les guillemets droits. Cela fait en quelque sorte partie du jargon du programmeur

Je vous propose maintenant de passer un peu de temps sur la compilation de vos programmes en ligne de commande. Cette section n'est pas obligatoire, loin de l, mais elle ne peut tre qu'enrichissante.

Compilation en ligne de commande (Windows)Bienvenue donc aux plus curieux ! Avant de vous apprendre compiler et excuter un programme en ligne de commande, il va vous falloir le JDK (Java SE Development Kit). C'est avec celui-ci que nous aurons de quoi compiler nos programmes. Le ncessaire l'excution des programmes est dans le JRE mais il est galement inclus dans le JDK. Je vous invite donc retourner sur le site d'Oracle et tlcharger ce dernier. Une fois cette opration effectue, il est conseill de mettre jour votre variable d'environnement %PATH%.

www.siteduzero.com

Partie 1 : Bien commencer en JavaEuh quoi ?

22/539

V otre variable d'environnement. C'est grce elle que Windows trouve des excutables sans qu'il soit ncessaire de lui spcifier le chemin d'accs complet. V ous enfin, Windows en a plusieurs, mais nous ne nous intresserons qu' une seule. En gros, cette variable contient le chemin d'accs certains programmes. Par exemple, si vous spcifiez le chemin d'accs un programme X dans votre variable d'environnement et que, par un malheureux hasard, vous n'avez plus aucun raccourci vers X : vous l'avez dfinitivement perdu dans les mandres de votre PC. Eh bien vous pourrez le lancer en faisant Dmarrer Excuter et en tapant la commande X.exe (en partant du principe que le nom de l'excutable est X.exe). D'accord, mais comment fait-on ? Et pourquoi doit-on faire a pour le JDK ?

J'y arrive. Une fois votre JDK install, ouvrez le rpertoire bin de celui-ci, ainsi que celui de votre JRE. Nous allons nous attarder sur deux fichiers. Dans le rpertoire bin de votre JRE, vous devez avoir un fichier nomm java.exe. Fichier que vous retrouvez aussi dans le rpertoire bin de votre JDK. C'est grce ce fichier que votre ordinateur peut lancer vos programmes par le biais de la JVM. Le deuxime ne se trouve que dans le rpertoire bin de votre JDK, il s'agit de javac.exe (Java compiler). C'est celui-ci qui va prcompiler vos programmes Java en byte code. Alors, pourquoi mettre jour la variable d'environnement pour le JDK ? Eh bien, compiler et excuter en ligne de commande revient utiliser ces deux fichiers en leur prcisant o se trouvent les fichiers traiter. Cela veut dire que si l'on ne met pas jour la variable d'environnement de Windows, il nous faudrait : ouvrir l'invite de commande ; se positionner dans le rpertoire bin de notre JDK ; appeler la commande souhaite ; prciser le chemin du fichier .java ; renseigner le nom du fichier. Avec notre variable d'environnement mise jour, nous n'aurons plus qu' : nous positionner dans le dossier de notre programme ; appeler la commande ; renseigner le nom du fichier Java. Allez dans le Panneau de configuration de votre PC ; de l, cliquez sur l'icne Systme ; choisissez l'onglet Avanc et vous devriez voir en bas un bouton nomm Variables d'environnement : cliquez dessus. Une nouvelle fentre s'ouvre. Dans la partie infrieure intitule Variables systme , cherchez la variable Path. Une fois slectionne, cliquez sur Modifier . Encore une fois, une fentre, plus petite celle-ci, s'ouvre devant vous. Elle contient le nom de la variable et sa valeur. Ne changez pas son nom et n'effacez pas son contenu ! Nous allons juste ajouter un chemin d'accs.

Pour ce faire, allez jusqu'au bout de la valeur de la variable, ajoutez-y un point-virgule (;) s'il n'y en a pas, et ajoutez alors le chemin d'accs au rpertoire bin de votre JDK, en terminant celui-ci par un point-virgule ! Chez moi, a donne ceci : C:\Sun\SDK\jdk\bin . Auparavant, ma variable d'environnement contenait, avant mon ajout : Code : Java %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;

www.siteduzero.com

Partie 1 : Bien commencer en JavaEt maintenant : Code : Java

23/539

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Sun\SDK\jdk\bin;

Validez les changements : vous tes maintenant prts compiler en ligne de commande. Pour bien faire, allez dans le rpertoire de votre premier programme et effacez le .class. Ensuite, faites Dmarrer > Excuter (ou encore touche Windows + R et tapez cmd . Pour rappel, dans l'invite de commande, on se dplace de dossier en dossier grce l'instruction cd. cd : pour aller dans un dossier contenu dans celui dans lequel nous nous trouvons. cd .. : pour remonter d'un dossier dans la hirarchie.

Par exemple, lorsque j'ouvre la console, je me trouve dans le dossier C:\toto\titi et mon application se trouve dans le dossier C:\sdz, je fais donc : Code : Java cd .. cd .. cd sdz

Aprs de la premire instruction, je me retrouve dans le dossier C:\toto. Grce la deuxime instruction, j'arrive la racine de mon disque. Via la troisime instruction, je me retrouve dans le dossier C:\sdz. Nous sommes maintenant dans le dossier contenant notre fichier Java ! Cela dit, nous pouvions condenser cela en : Code : Java cd ../../sdz

Maintenant, vous pouvez crer votre fichier .class en excutant la commande suivante : Code : Java javac

Si, dans votre dossier, vous avez un fichier test.java, compilez-le en faisant : javac test.java. Et si vous n'avez aucun message d'erreur, vous pouvez vrifier que le fichier test.class est prsent en utilisant l'instruction dir qui liste le contenu d'un rpertoire. Cette tape franchie, vous pouvez lancer votre programme Java en faisant ce qui suit : Code : Java

www.siteduzero.com

Partie 1 : Bien commencer en Javajava

24/539

Ce qui nous donne : java test. Et normalement, le rsultat de votre programme Java s'affiche sous vos yeux bahis ! Attention : il ne faut pas mettre l'extension du fichier pour le lancer, mais il faut la mettre pour le compiler.

Donc voil : vous avez compil et excut un programme Java en ligne de commande V ous avez pu voir qu'il n'y a rien de vraiment compliqu et, qui sait, vous en aurez peut-tre besoin un jour.

En rsumLa JVM est le cur de Java. Elle fait fonctionner vos programmes Java, prcompils en byte code. Les fichiers contenant le code source de vos programmes Java ont l'extension .java. Les fichiers prcompils correspondant vos codes source Java ont l'extension .class. Le byte code est un code intermdiaire entre celui de votre programme et celui que votre machine peut comprendre. Un programme Java, cod sous Windows, peut tre prcompil sous Mac et enfin excut sous Linux. V otre machine NE PEUT PAS comprendre le byte code, elle a besoin de la JVM. Tous les programmes Java sont composs d'au moins une classe. Le point de dpart de tout programme Java est la mthode public static void main(String[] args). On peut afficher des messages dans la console grce ces instructions : System.out.println, qui affiche un message avec un saut de ligne la fin ; System.out.print, qui affiche un message sans saut de ligne.

www.siteduzero.com

Partie 1 : Bien commencer en Java

25/539

Les variables et les oprateursNous commenons maintenant srieusement la programmation. Dans ce chapitre, nous allons dcouvrir les variables. On les retrouve dans la quasi-totalit des langages de programmation. Une variable est un lment qui stocke des informations de toute sorte en mmoire : des chiffres, des rsultats de calcul, des tableaux, des renseignements fournis par l'utilisateur V ous ne pourrez pas programmer sans variables. Il est donc indispensable que je vous les prsente !

Petit rappelAvant de commencer, je vous propose un petit rappel sur le fonctionnement d'un ordinateur et particulirement sur la faon dont ce dernier interprte notre faon de voir le monde V ous n'tes pas sans savoir que votre ordinateur ne parle qu'une seule langue : le binaire ! Le langage binaire est une simple suite de 0 et de 1. V ous devez vous rendre compte qu'il nous serait trs difficile, en tant qu'tres humains, d'crire des programmes informatiques pour expliquer nos ordinateurs ce qu'ils doivent faire, entirement en binaire V ous imaginez ! Des millions de 0 et de 1 qui se suivent ! Non, ce n'tait pas possible ! De ce fait, des langages de programmation ont t crs afin que nous ayons disposition des instructions claires pour crer nos programmes. Ces programmes