Apprenez a Programmer en Java

534
Apprenez à programmer en Java Par cysboy www.openclassrooms.com Licence Creative Commons 6 2.0 Dernière mise à jour le 8/01/2013

description

Apprenez a Programmer en Java

Transcript of Apprenez a Programmer en Java

  • Apprenez programmer en Java

    Par cysboy

    www.openclassrooms.com

    Licence Creative Commons 6 2.0Dernire mise jour le 8/01/2013

  • Sommaire

    2Sommaire ........................................................................................................................................... 4Partager .............................................................................................................................................. 6 Apprenez programmer en Java ....................................................................................................... 7Partie 1 : Bien commencer en Java .................................................................................................... 8Installer les outils de dveloppement ................................................................................................................................ 8Installer les outils ncessaires .................................................................................................................................................................................... 8JRE ou JDK ................................................................................................................................................................................................................. 9Eclipse IDE ..................................................................................................................................................................................................................

    10Prsentation rapide de l'interface .............................................................................................................................................................................. 15Votre premier programme ......................................................................................................................................................................................... 17Hello World ................................................................................................................................................................................................................ 19Compilation en ligne de commande (Windows) ........................................................................................................................................................ 22En rsum .................................................................................................................................................................................................................

    23Les variables et les oprateurs ....................................................................................................................................... 23Petit rappel ................................................................................................................................................................................................................ 24Les diffrents types de variables ............................................................................................................................................................................... 28Les oprateurs arithmtiques .................................................................................................................................................................................... 31Les conversions, ou cast ..................................................................................................................................................................................... 33Depuis Java 7 : le formatage des nombres ...............................................................................................................................................................

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

    38Les conditions ................................................................................................................................................................. 39La structure if else ................................................................................................................................................................................................. 41Les conditions multiples ............................................................................................................................................................................................ 42La structure switch .................................................................................................................................................................................................... 43La condition ternaire ..................................................................................................................................................................................................

    44Les boucles ..................................................................................................................................................................... 45La boucle while .......................................................................................................................................................................................................... 48La boucle do while ................................................................................................................................................................................................. 49La boucle for ..............................................................................................................................................................................................................

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

    56Les tableaux .................................................................................................................................................................... 56Tableau une dimension .......................................................................................................................................................................................... 56Les tableaux multidimensionnels .............................................................................................................................................................................. 57Utiliser et rechercher dans un tableau ......................................................................................................................................................................

    62Les mthodes de classe ................................................................................................................................................. 63Quelques mthodes utiles ......................................................................................................................................................................................... 63Des mthodes concernant les chanes de caractres .............................................................................................................................................. 65Crer sa propre mthode .......................................................................................................................................................................................... 68La surcharge de mthode ......................................................................................................................................................................................... 69En rsum .................................................................................................................................................................................................................

    69Partie 2 : Java Orient Objet ............................................................................................................. 70Votre premire classe ..................................................................................................................................................... 70Structure de base ...................................................................................................................................................................................................... 71Les constructeurs ...................................................................................................................................................................................................... 75Accesseurs et mutateurs ........................................................................................................................................................................................... 81Les variables de classes ........................................................................................................................................................................................... 82Le principe d'encapsulation .......................................................................................................................................................................................

    83L'hritage ......................................................................................................................................................................... 84Le principe de l'hritage ............................................................................................................................................................................................ 88Le polymorphisme ..................................................................................................................................................................................................... 93Depuis Java 7 : la classe Objects .............................................................................................................................................................................

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

    101Les packages ................................................................................................................................................................ 101Cration d'un package ............................................................................................................................................................................................ 101Droits d'accs entre les packages ...........................................................................................................................................................................

    104Les classes abstraites et les interfaces ........................................................................................................................ 104Les classes abstraites ............................................................................................................................................................................................. 105Une classe Animal trs abstraite ............................................................................................................................................................................. 107toffons notre exemple ........................................................................................................................................................................................... 111Les interfaces .......................................................................................................................................................................................................... 112Votre premire interface .......................................................................................................................................................................................... 114Implmentation de l'interface Rintintin ..................................................................................................................................................................... 115Le pattern strategy ................................................................................................................................................................................................... 116Posons le problme .................................................................................................................................................................................................

    2/535

    www.openclassrooms.com

  • 117Le code source de ces classes ............................................................................................................................................................................... 122Un problme supplmentaire .................................................................................................................................................................................. 126Une solution simple et robuste : le pattern strategy ..........................................................................................................................................

    134Les exceptions .............................................................................................................................................................. 134Le bloc try{...} catch{...} ........................................................................................................................................................................................... 136Les exceptions personnalises ............................................................................................................................................................................... 139La gestion de plusieurs exceptions ......................................................................................................................................................................... 140Depuis Java 7 : le multi-catch .................................................................................................................................................................................

    141Les numrations .......................................................................................................................................................... 142Avant les numrations ........................................................................................................................................................................................... 142Une solution : les enum ...........................................................................................................................................................................................

    145Les collections d'objets ................................................................................................................................................. 146Les diffrents types de collections .......................................................................................................................................................................... 146Les objets List ......................................................................................................................................................................................................... 146L'objet LinkedList ..................................................................................................................................................................................................... 148L'objet ArrayList ....................................................................................................................................................................................................... 149Les objets Map ........................................................................................................................................................................................................ 149L'objet Hashtable ..................................................................................................................................................................................................... 150L'objet HashMap ..................................................................................................................................................................................................... 150Les objets Set ......................................................................................................................................................................................................... 150L'objet HashSet .......................................................................................................................................................................................................

    151La gnricit en Java .................................................................................................................................................... 152Principe de base ..................................................................................................................................................................................................... 155Plus loin dans la gnricit ! ................................................................................................................................................................................... 156Gnricit et collections .......................................................................................................................................................................................... 157Hritage et gnricit ..............................................................................................................................................................................................

    161Les flux d'entre/sortie .................................................................................................................................................. 162Utilisation de java.io ................................................................................................................................................................................................ 162L'objet File ............................................................................................................................................................................................................... 163Les objets FileInputStream et FileOutputStream .................................................................................................................................................... 167Les objets FilterInputStream et FilterOutputStream ................................................................................................................................................ 171Les objets ObjectInputStream et ObjectOutputStream ........................................................................................................................................... 175Les objets CharArray(Writer/Reader) et String(Writer/Reader) ............................................................................................................................... 177Les classes File(Writer/Reader) et Print(Writer/Reader) ......................................................................................................................................... 177Utilisation de java.nio .............................................................................................................................................................................................. 181Depuis Java 7 : nio II ............................................................................................................................................................................................... 184Le pattern decorator ................................................................................................................................................................................................

    188Java et la rflexivit ....................................................................................................................................................... 189L'objet Class ............................................................................................................................................................................................................ 193Instanciation dynamique .........................................................................................................................................................................................

    196Partie 3 : Java et la programmation vnementielle ....................................................................... 197Notre premire fentre .................................................................................................................................................. 197L'objet JFrame ......................................................................................................................................................................................................... 201L'objet JPanel .......................................................................................................................................................................................................... 202Les objets Graphics et Graphics2D ........................................................................................................................................................................ 202L'objet Graphics ...................................................................................................................................................................................................... 210L'objet Graphics2D ..................................................................................................................................................................................................

    213Le fil rouge : une animation ........................................................................................................................................... 214Cration de l'animation ............................................................................................................................................................................................ 217Amliorations ..........................................................................................................................................................................................................

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

    238Interagir avec des boutons ............................................................................................................................................ 238Une classe Bouton personnalise ........................................................................................................................................................................... 240Interactions avec la souris : l'interface MouseListener ............................................................................................................................................ 245Interagir avec son bouton ........................................................................................................................................................................................ 245Dclencher une action : l'interface ActionListener ................................................................................................................................................... 251Parler avec sa classe intrieure .............................................................................................................................................................................. 255Les classes anonymes ............................................................................................................................................................................................ 257Contrler son animation : lancement et arrt .......................................................................................................................................................... 261tre l'coute de ses objets : le design pattern Observer ...................................................................................................................................... 261Posons le problme ................................................................................................................................................................................................ 263Des objets qui parlent et qui coutent : le pattern observer .................................................................................................................................... 267Le pattern observer : le retour ................................................................................................................................................................................. 268Cadeau : un bouton personnalis optimis .............................................................................................................................................................

    270TP : une calculatrice ...................................................................................................................................................... 271laboration .............................................................................................................................................................................................................. 271Conception .............................................................................................................................................................................................................. 272Correction ................................................................................................................................................................................................................ 275Gnrer un .jar excutable ......................................................................................................................................................................................

    280Excuter des tches simultanment ............................................................................................................................. 281Une classe hrite de Thread ................................................................................................................................................................................. 285Utiliser l'interface Runnable ..................................................................................................................................................................................... 289Synchroniser ses threads ........................................................................................................................................................................................ 289Contrler son animation .......................................................................................................................................................................................... 290Depuis Java 7 : le pattern Fork/Join ........................................................................................................................................................................

    300Les champs de formulaire ............................................................................................................................................. 300Les listes : l'objet JComboBox ................................................................................................................................................................................ 300Premire utilisation ..................................................................................................................................................................................................

    Sommaire 3/535

    www.openclassrooms.com

    Je

  • 301L'interface ItemListener ........................................................................................................................................................................................... 303Changer la forme de notre animation ...................................................................................................................................................................... 308Les cases cocher : l'objet JCheckBox .................................................................................................................................................................. 308Premire utilisation .................................................................................................................................................................................................. 309Un pseudomorphing pour notre animation .............................................................................................................................................................. 314Le petit cousin : l'objet JRadioButton ...................................................................................................................................................................... 316Les champs de texte : l'objet JTextField .................................................................................................................................................................. 316Premire utilisation .................................................................................................................................................................................................. 317Un objet plus restrictif : le JFormattedTextField ...................................................................................................................................................... 320Contrle du clavier : l'interface KeyListener ............................................................................................................................................................

    323Les menus et botes de dialogue .................................................................................................................................. 324Les botes de dialogue ............................................................................................................................................................................................ 326Les botes de confirmation ...................................................................................................................................................................................... 328Les botes de saisie ................................................................................................................................................................................................ 331Des botes de dialogue personnalises .................................................................................................................................................................. 337Les menus ............................................................................................................................................................................................................... 337Faire son premier menu .......................................................................................................................................................................................... 345Les raccourcis clavier .............................................................................................................................................................................................. 348Faire un menu contextuel ........................................................................................................................................................................................ 355Les barres d'outils ................................................................................................................................................................................................... 359Utiliser les actions abstraites ...................................................................................................................................................................................

    360TP : l'ardoise magique ................................................................................................................................................... 361Cahier des charges ................................................................................................................................................................................................. 362Prrequis ................................................................................................................................................................................................................. 362Correction ................................................................................................................................................................................................................ 367Amliorations possibles ..........................................................................................................................................................................................

    367Conteneurs, sliders et barres de progression ............................................................................................................... 368Autres conteneurs ................................................................................................................................................................................................... 368L'objet JSplitPane .................................................................................................................................................................................................... 371L'objet JScrollPane .................................................................................................................................................................................................. 373L'objet JTabbedPane ............................................................................................................................................................................................... 377L'objet JDesktopPane combin des JInternalFrame ............................................................................................................................................ 378L'objet JWindow ...................................................................................................................................................................................................... 379Le JEditorPane ........................................................................................................................................................................................................ 380Le JSlider ................................................................................................................................................................................................................ 381La JProgressBar ...................................................................................................................................................................................................... 382Enjoliver vos IHM ....................................................................................................................................................................................................

    384Les arbres et leur structure ........................................................................................................................................... 385La composition des arbres ...................................................................................................................................................................................... 389Des arbres qui vous parlent .................................................................................................................................................................................... 392Dcorez vos arbres ................................................................................................................................................................................................. 397Modifier le contenu de nos arbres ...........................................................................................................................................................................

    403Les interfaces de tableaux ............................................................................................................................................ 404Premiers pas ........................................................................................................................................................................................................... 405Gestion de l'affichage .............................................................................................................................................................................................. 405Les cellules ............................................................................................................................................................................................................. 411Contrlez l'affichage ................................................................................................................................................................................................ 415Interaction avec l'objet JTable ................................................................................................................................................................................. 421Ajouter des lignes et des colonnes .........................................................................................................................................................................

    423TP : le pendu ................................................................................................................................................................. 424Cahier des charges ................................................................................................................................................................................................. 425Prrequis ................................................................................................................................................................................................................. 426Correction ................................................................................................................................................................................................................

    427Mieux structurer son code : le pattern MVC .................................................................................................................. 428Premiers pas ........................................................................................................................................................................................................... 429Le modle ............................................................................................................................................................................................................... 432Le contrleur ........................................................................................................................................................................................................... 434La vue ......................................................................................................................................................................................................................

    438Le Drag'n Drop .............................................................................................................................................................. 438Prsentation ............................................................................................................................................................................................................ 441Fonctionnement ...................................................................................................................................................................................................... 444Crer son propre TransferHandler .......................................................................................................................................................................... 448Activer le drop sur un JTree .................................................................................................................................................................................... 453Effet de dplacement ..............................................................................................................................................................................................

    458Mieux grer les interactions avec les composants ....................................................................................................... 458Prsentation des protagonistes ............................................................................................................................................................................... 459Utiliser l'EDT ............................................................................................................................................................................................................ 461La classe SwingWorker ................................................................................................................................................................................

    466Partie 4 : Interactions avec les bases de donnes .......................................................................... 466JDBC : la porte d'accs aux bases de donnes ........................................................................................................... 466Rappels sur les bases de donnes ......................................................................................................................................................................... 467Quelle base de donnes utiliser .............................................................................................................................................................................. 467Installation de PostgreSQL ...................................................................................................................................................................................... 470Prparer la base de donnes .................................................................................................................................................................................. 471Crer la base de donnes ....................................................................................................................................................................................... 473Crer les tables ....................................................................................................................................................................................................... 478Se connecter la base de donnes ........................................................................................................................................................................ 480Connexion ...............................................................................................................................................................................................................

    483Fouiller dans sa base de donnes ................................................................................................................................ 483Le couple Statement - ResultSet ............................................................................................................................................................................

    Sommaire 4/535

    www.openclassrooms.com

  • 486Entranons-nous ...................................................................................................................................................................................................... 490Statement ................................................................................................................................................................................................................ 491Les requtes prpares .......................................................................................................................................................................................... 493ResultSet : le retour ................................................................................................................................................................................................. 496Modifier des donnes .............................................................................................................................................................................................. 497Statement, toujours plus fort ................................................................................................................................................................................... 499Grer les transactions manuellement .....................................................................................................................................................................

    502Limiter le nombre de connexions .................................................................................................................................. 502Pourquoi ne se connecter qu'une seule fois ? ........................................................................................................................................................ 502Le pattern singleton ................................................................................................................................................................................................. 504Le singleton dans tous ses tats .............................................................................................................................................................................

    506TP : un testeur de requtes ........................................................................................................................................... 507Cahier des charges ................................................................................................................................................................................................. 507Quelques captures d'cran ..................................................................................................................................................................................... 508Correction ................................................................................................................................................................................................................

    512Lier ses tables avec des objets Java : le pattern DAO ................................................................................................. 513Avant toute chose .................................................................................................................................................................................................... 517Le pattern DAO ....................................................................................................................................................................................................... 517Contexte .................................................................................................................................................................................................................. 517Le pattern DAO ....................................................................................................................................................................................................... 523Premier test ............................................................................................................................................................................................................. 524Le pattern factory .................................................................................................................................................................................................... 526Fabriquer vos DAO .................................................................................................................................................................................................. 528De l'usine la multinationale ...................................................................................................................................................................................

    Partager 5/535

    www.openclassrooms.com

  • Apprenez programmer en Java

    Par cysboy

    Mise jour : 08/01/2013Difficult : Intermdiaire Dure d'tude : 2 mois

    Bonjour tous, amis Zros !

    Bienvenue dans mon cours de programmation en Java. C'est un langage trs utilis, notamment par un grand nombre deprogrammeurs professionnels, ce qui en fait un langage incontournable actuellement.

    Voici les caractristiques de Java en quelques mots :

    Java est un langage de programmation moderne dvelopp par Sun Microsystems (aujourd'hui rachet par Oracle). Il nefaut surtout pas le confondre avec JavaScript (langage de scripts utilis principalement sur les sites web), car Java n'arien voir.Une de ses plus grandes forces est son excellente portabilit : une fois votre programme cr, il fonctionneraautomatiquement 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 unlangage si vaste qui offre autant de possibilits ?

    Heureusement, ce cours est l pour tout vous apprendre de Java partir de zro .

    Partager 6/535

    www.openclassrooms.com

  • 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" dumme auteur, en vente sur le Site du Zro, en librairie et dans les boutiques en ligne. Vous y trouverezce cours adapt au format papier.

    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 !

    Apprenez programmer en Java 7/535

    www.openclassrooms.com

  • Partie 1 : Bien commencer en Java

    Bon, vous ne connaissez rien Java ? Eh bien c'est par ici que a se passe ! Java est normalement un langage fait pourdvelopper des applications graphiques, mais pour arriver cela, nous devons tout de mme passer par la programmation Javaen 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'unprogramme 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 fameuxcode inintelligible pour votre machine, mais interprtable par la machine virtuelle Java. Cette dernire porte un nom : on parle pluscommunment de JRE (Java Runtime Environment). Plus besoin de se soucier des spcificits lies tel ou tel OS (OperatingSystem, 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 crerdes programmes Java : la premire est ce fameux JRE !

    Installer les outils ncessairesJRE ou JDK

    Commencez par tlcharger l'environnement Java sur le site d'Oracle, comme le montre la figure suivante. Choisissez la dernireversion stable.

    Encart de

    tlchargement

    Vous avez sans doute remarqu qu'on vous propose de tlcharger soit le JRE, soit le JDK (Java Development Kit). Ladiffrence entre ces deux environnements est crite, mais pour les personnes fches avec l'anglais, sachez que le JRE contienttout le ncessaire pour 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

    L'IDE contenant dj tout le ncessaire pour le dveloppement et la compilation, nous n'avons besoin que du JRE. Une fois quevous avez cliqu sur Download JRE, vous arrivez sur la page reprsente la figure suivante.

    Partie 1 : Bien commencer en Java 8/535

    www.openclassrooms.com

  • Choix du systme

    d'exploitation

    Cochez la case : Accept License Agreement puis cliquez sur le lien correspondant votre systme d'exploitation (x86pour 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 crerdes programmes pour diffrentes plates-formes :

    J2SE (Java 2 Standard Edition , celui qui nous intresse dans cet ouvrage) : permet de dvelopper des applicationsdites client lourd , par exemple Word, Excel, la suite OpenOffice.org Toutes ces applications sont des clientslourds . C'est ce que nous allons faire dans ce coursJ2EE (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 tlphonesportables, des PDA

    Eclipse IDE

    Avant toute chose, quelques mots sur le projet Eclipse. Eclipse IDE est un environnement de dveloppement libre permettantde crer des programmes dans de nombreux langages de programmation (Java, C++, PHP). C'est l'outil que nous allons utiliserpour programmer.

    Eclipse IDE est lui-mme principalement crit en Java.

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

    Version Windows d'Eclipse IDE

    Slectionnez maintenant le miroir que vous souhaitez utiliser pour obtenir Eclipse. Voil, vous n'avez plus qu' attendre la fin du

    Partie 1 : Bien commencer en Java 9/535

    www.openclassrooms.com

  • 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 bytecode, 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 plugin. Celasignifie que toutes ses fonctionnalits sont dveloppes en tant que plugins. Pour faire court, si vous voulez ajouter desfonctionnalits Eclipse, vous devez :

    tlcharger le plugin correspondant ;copier les fichiers spcifis dans les rpertoires spcifis ;dmarrer Eclipse, et a y est !

    Lorsque vous tlchargez un nouveau plugin pour Eclipse, celui-ci se prsente souvent comme un dossier contenantgnralement deux sous-dossiers : un dossier plugins et un dossier features . Ces dossiers existent aussi dans lerpertoire d'Eclipse. Il vous faut donc copier le contenu des dossiers de votre plugin vers le dossier correspondantdans Eclipse (plugins dans plugins et features dans features).

    Vous devez maintenant avoir une archive contenant Eclipse. Dcompressez-la o vous voulez, entrez dans ce dossier et lancezEclipse. Au dmarrage, comme le montre la figure suivante, Eclipse vous demande dans quel dossier vous souhaitez enregistrervos projets ; sachez que rien ne vous empche de spcifier un autre dossier que celui propos par dfaut. Une fois cette tapeeffectue, vous arrivez sur la page d'accueil d'Eclipse. Si vous avez envie d'y jeter un oeil, allez-y !

    Vous

    devez indiquer o enregistrer vos projets

    Prsentation rapide de l'interface

    Je vais maintenant vous faire faire un tour rapide de l'interface d'Eclipse. Voici les principaux menus :

    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.

    Edit : Dans ce menu, nous pourrons utiliser les commandes copier , coller , etc.

    Partie 1 : Bien commencer en Java 10/535

    www.openclassrooms.com

  • Window : Dans celui-ci, nous pourrons configurer Eclipse selon nos besoins.

    La barre d'outils

    La barre d'outils ressemble la figure suivante.

    La barre

    d'outils d'Eclipse

    Nous avons dans l'ordre :

    1. nouveau gnral : cliquer sur ce bouton revient faire Fichier > Nouveau ;2. enregistrer : revient faire CTRL + S ;3. imprimer : ai-je besoin de prciser ?4. excuter la classe ou le projet spcifi : nous verrons ceci plus en dtail ;5. crer un nouveau projet : revient faire Fichier > Nouveau > Java Project ;6. crer une nouvelle classe : crer un nouveau fichier. Cela revient faire

    Fichier > Nouveau > Classe.

    Maintenant, je vais vous demander de crer un nouveau projet Java, comme indiqu aux figures suivantes.

    Cration de projet Java - tape 1

    Partie 1 : Bien commencer en Java 11/535

    www.openclassrooms.com

  • Cration de projet Java -

    tape 2

    Renseignez le nom de votre projet comme je l'ai fait dans le premier encadr de la deuxime figure. Vous pouvez aussi voir o seraenregistr ce projet. Un peu plus compliqu, maintenant : vous avez un environnement Java sur votre machine, mais dans le caso vous en auriez plusieurs, vous pouvez aussi spcifier Eclipse quel JRE utiliser pour ce projet, comme sur le deuximeencadr de la deuxime figure. Vous pourrez changer ceci tout moment dans Eclipse en allant dansWindow > Preferences, en dpliant l'arbre Java dans la fentre et en choisissant Installed JRE.

    Vous devriez avoir un nouveau projet dans la fentre de gauche, comme la figure suivante.

    Partie 1 : Bien commencer en Java 12/535

    www.openclassrooms.com

  • Explorateur de projet

    Pour boucler la boucle, ajoutons ds maintenant une nouvelle classe dans ce projet comme nous avons appris le faire plus ttvia la barre d'outils. La figure suivante reprsente la fentre sur laquelle vous devriez tomber.

    Une classe est un ensemble de codes contenant plusieurs instructions que doit effectuer votre programme. Ne vousattardez pas trop sur ce terme, nous aurons l'occasion d'y revenir.

    Partie 1 : Bien commencer en Java 13/535

    www.openclassrooms.com

  • 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 ! Cochezpublic static void main(String[] args) (nous reviendrons plus tard sur ce point), puis cliquez sur Finish. Lafentre principale d'Eclipse se lance, comme la figure suivante.

    Partie 1 : Bien commencer en Java 14/535

    www.openclassrooms.com

  • Fentre principale d'Eclipse

    Avant de commencer coder, nous allons explorer l'espace de travail. Dans l'encadr de gauche (le vert), vous trouverez ledossier 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 (le bleu), je pense que vous avez devin : c'est ici que nous allons crire noscodes source. Dans l'encadr du bas (le rouge), c'est l que vous verrez apparatre le contenu de vos programmes ainsi que leserreurs ventuelles ! Et pour finir, c'est dans l'encadr de droite (le violet), ds que nous aurons appris coder nos propresfonctions 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 enbyte 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 lienentre ce code et votre machine.

    Vous 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 sousWindows. Par contre, le byte code, lui, reste le mme quel que soit l'environnement avec lequel a t dvelopp et prcompilvotre programme Java. Consquence directe : quel que soit l'OS sous lequel a t cod un programme Java, n'importe quellemachine pourra l'excuter si elle dispose d'une JVM !

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

    Partie 1 : Bien commencer en Java 15/535

    www.openclassrooms.com

  • 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'uncode intermdiaire entre votre code Java et le code machine. Ce code particulier se trouve dans les fichiers prcompils de vosprogrammes ; en Java, un fichier source a pour extension .java et un fichier prcompil a l'extension .class : c'est dans cedernier que vous trouverez du byte code. Je vous invite examiner un fichier .class la fin de cette partie (vous en aurez aumoins un), mais je vous prviens, c'est illisible !

    Par contre, vos fichiers .java sont de simples fichiers texte dont l'extension a t change. Vous pouvez donc les ouvrir, lescrer ou encore les mettre jour avec le Bloc-notes de Windows, par exemple. Cela implique que, si vous le souhaitez, vouspouvez crire des programmes Java avec le Bloc-notes ou encore avec Notepad++.

    Reprenons. Vous devez savoir que tous les programmes Java sont composs d'au moins une classe. Elle doit contenir unemthode 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.

    Vous verrez un peu plus tard qu'un programme n'est qu'une multitude de classes qui s'utilisent l'une l'autre. Mais pour lemoment, nous n'allons travailler qu'avec une seule classe.

    Je vous avais demand de crer un projet Java ; ouvrez-le ! Vous voyez la fameuse classe dont je vous parlais ? Ici, elle s'appelle sdz1 , comme la figure suivante. Vous pouvez voir que le mot class est prcd du mot public, dont nous verrons lasignification lorsque nous programmerons des objets.

    Mthode principale

    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 les accolades de la mthodemain. La syntaxe de cette mthode est toujours la mme :

    Code : Java

    public static void main(String[] args){ //Contenu de votre classe}

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

    Bonne question ! Je vous ai dit prcdemment que votre programme Java, avant de pouvoir tre excut, doit tre prcompil en

    Partie 1 : Bien commencer en Java 16/535

    www.openclassrooms.com

  • byte code. Eh bien, la possibilit de forcer le compilateur ignorer certaines instructions existe ! Cest ce quon appelle descommentaires, et deux syntaxes sont disponibles pour commenter son texte :

    1. Les commentaires unilignes : introduits par les symboles // , ils mettent tout ce qui les suit en commentaire, du momentque le texte se trouve sur la mme ligne ;

    2. 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

    /*Un commentaireUn autreEncore 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 etle nombre de classes qui les composeront vont augmenter. Vous serez contents de trouver quelques lignes de commentaires audbut de votre classe pour vous dire quoi elle sert, ou encore des commentaires dans une mthode qui effectue des chosescompliques 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 votreprogramme (on l'appelle Javadoc pour Java Documentation ). Je n'en parlerai que trs peu, et pas dans ce chapitre. Nousverrons cela lorsque nous programmerons des objets, mais pour les curieux, je vous conseille le trs bon cours de dworkin sur cesujet 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 desprogrammes procduraux. Cela signifie que le programme s'excutera de faon procdurale, c'est--dire qui s'effectue de haut enbas, une ligne aprs l'autre. Bien sr, il y a des instructions qui permettent de rpter des morceaux de code, mais le programmeen lui-mme se terminera une fois parvenu la fin du code. Cela vient en opposition la programmation vnementielle (ougraphique) qui, elle, est base sur des vnements (clic de souris, choix dans un menu).

    Hello World

    Maintenant, 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.

    Partie 1 : Bien commencer en Java 17/535

    www.openclassrooms.com

  • Une fois que vous avez saisi cette ligne de code dans votre mthode main, il vous faut lancer le programme. Si vous voussouvenez bien de la prsentation faite prcdemment, vous devez cliquer sur la flche blanche dans un rond vert, comme lafigure suivante.

    Bouton de lancement du programme

    Si vous regardez dans votre console, dans la fentre du bas sous Eclipse, vous devriez voir quelque chose ressemblant lafigure suivante.

    La 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 .Avant que vous arrachiez les cheveux, voici quelques prcisions :

    System : ceci correspond l'appel d'une classe qui se nomme System . C'est une classe utilitaire qui permet surtoutd'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 (entre les parenthses).

    Prenons le code suivant :

    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, cecis'affichera dans votre console :

    Code : Console

    Hello World !My name isCysboy

    Je me doute que vous souhaiteriez insrer un retour la ligne pour que votre texte soit plus lisible Pour cela, vous avezplusieurs 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");

    Partie 1 : Bien commencer en Java 18/535

    www.openclassrooms.com

  • System.out.println("My name is");System.out.println("\nCysboy");

    Avec pour rsultat :

    Code : Console

    Hello World !My name is Cysboy

    Vous pouvez voir que :

    lorsque vous utilisez le caractre d'chappement \n, quelle que soit la mthode appele, celle-ci ajoute immdiatement unretour la ligne son emplacement ;lorsque vous utilisez la mthode println(), celle-ci ajoute automatiquement un retour la ligne la fin de la chanepasse 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 :

    1. \r va insrer un retour chariot, parfois utilis aussi pour les retours la ligne ;2. \t va faire une tabulation.

    Vous avez srement remarqu que la chane de caractres que l'on affiche est entoure par des " . En Java, lesguillemets doubles sont des dlimiteurs de chanes de caractres ! Si vous voulez afficher un guillemet double dans lasortie standard, vous devrez l'chapper avec un \ , ce qui donnerait : "Coucou mon \"chou\" !". Il n'estpas rare de croiser le terme anglais quote pour dsigner les guillemets droits. Cela fait en quelque sorte partie du jargondu programmeur.

    Je vous propose maintenant de passer un peu de temps sur la compilation de vos programmes en ligne de commande. Cettepartie 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 vavous falloir le JDK (Java SE Development Kit). C'est avec celui-ci que nous aurons de quoi compiler nos programmes. Lencessaire 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 votrevariable d'environnement %PATH%.

    Euh quoi ?

    Votre variable d'environnement . C'est grce elle que Windows trouve des excutables sans qu'il soit ncessaire de luispcifier le chemin d'accs complet. Vous 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 unmalheureux hasard, vous n'avez plus aucun raccourci vers X, vous l'avez dfinitivement perdu dans les mandres de votre PC. Eh

    Partie 1 : Bien commencer en Java 19/535

    www.openclassrooms.com

  • bien vous pourrez le lancer en faisant Dmarrer > Excuter et en tapant la commande X.exe (en partant du principe quele 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 attardersur deux fichiers.

    Dans le rpertoire bin de votre JRE, vous devez avoir un fichier nomm java.exe, que vous retrouvez aussi dans le rpertoirebin de votre JDK. C'est grce ce fichier que votre ordinateur peut lancer vos programmes par le biais de la JVM. Le deuximene se trouve que dans le rpertoire bin de votre JDK, il s'agit de javac.exe (Java compiler). C'est celui-ci qui va prcompilervos programmes Java en byte code.

    Alors, pourquoi mettre jour la variable d'environnement pour le JDK ? Eh bien, compiler et excuter en ligne de commanderevient utiliser ces deux fichiers en leur prcisant o se trouvent les fichiers traiter. Cela veut dire que si l'on ne met pas jourla 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 vousdevriez voir en bas un bouton nomm Variables d'environnement : cliquez dessus. Une nouvelle fentre s'ouvre. Dansla 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 le chemin d'accsau 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;

    Et maintenant :

    Code : Java

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

    Partie 1 : Bien commencer en Java 20/535

    www.openclassrooms.com

  • 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, faitesDmarrer > Excuter (ou encore touche Windows + R et tapez cmd .

    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 ledossier C:\sdz, je fais donc :

    Code : Console

    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 demon disque. Via la troisime instruction, je me retrouve dans le dossier C:\sdz. Nous sommes maintenant dans le dossiercontenant notre fichier Java ! Cela dit, nous pouvions condenser cela en :

    Code : Console

    cd ../../sdz

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

    Code : Console

    javac

    Si, dans votre dossier, vous avez un fichier test.java, compilez-le en faisant :

    Code : Console

    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'instructiondir qui liste le contenu d'un rpertoire. Cette tape franchie, vous pouvez lancer votre programme Java en faisant ce qui suit :

    Code : Console

    java

    Ce qui nous donne :

    Code : Console

    Partie 1 : Bien commencer en Java 21/535

    www.openclassrooms.com

  • 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.

    Voil : vous avez compil et excut un programme Java en ligne de commande Vous avez pu voir qu'il n'y a rien de vraimentcompliqu 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.Votre 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.

    Partie 1 : Bien commencer en Java 22/535

    www.openclassrooms.com

  • Les variables et les oprateursNous commenons maintenant srieusement la programmation. Dans ce chapitre, nous allons dcouvrir les variables. On lesretrouve dans la quasi-totalit des langages de programmation. Une variable est un lment qui stocke des informations de toutesorte en mmoire : des chiffres, des rsultats de calcul, des tableaux, des renseignements fournis par l'utilisateur

    Vous ne pourrez pas programmer sans variables. Il est donc indispensable que je vous les prsente !Petit rappel

    Avant de commencer, je vous propose un petit rappel sur le fonctionnement d'un ordinateur et particulirement sur la faon dontce dernier interprte notre faon de voir le monde

    Vous n'tes pas sans savoir que votre ordinateur ne parle qu'une seule langue : le binaire ! Le langage binaire est une simplesuite de 0 et de 1. Vous devez vous rendre compte qu'il nous serait trs difficile, en tant qu'tres humains, d'crire desprogrammes informatiques pour expliquer nos ordinateurs ce qu'ils doivent faire, entirement en binaire Vous imaginez ! Desmillions de 0 et de 1 qui se suivent ! Non, ce n'tait pas possible ! De ce fait, des langages de programmation ont t crs afinque nous ayons disposition des instructions claires pour crer nos programmes. Ces programmes sont ensuite compils pourque nos instructions humainement comprhensibles soient, aprs coup, comprhensible par votre machine.

    Le langage binaire est donc une suite de 0 et de 1 qu'on appelle bit. Si vous tes habitus la manipulation de fichiers (audio,vidos, etc.) vous devez savoir qu'il existe plusieurs catgories de poids de programme (Ko, Mo, Go, etc.). Tous ces poidscorrespondent au systme mtrique informatique. Le tableau suivant prsente les poids les plus frquemment rencontrs :

    Raccourcis Traduction Correspondance

    b Bit C'est la plus petite valeur informatique : soit 0 soit 1

    o Octet regroupement de 8 bits, par exemple : 01011101

    Ko Kilo Octet regroupement de 1024 octets

    Mo Mega Octet regroupement de 1024 ko

    Go Giga Octet regroupement de 1024 Mo

    To Tera Octet regroupement de 1024 Go

    Pourquoi 1024 ? Pourquoi pas 1000 ?

    Si vous vous posez cette question c'est parce que vous ne savez pas encore compter comme un ordinateur et que vous tes trophabitus utiliser un systme en base 10. Je sais, c'est un peu confus Pour comprendre pourquoi ce dcoupage est fait de lasorte, vous devez comprendre que votre faon de compter n'est pas identique celle de votre machine. En effet, vous avezl'habitude de compter ainsi :

    Code : Console

    1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 ... 254, 255, 256 ... 12345678, 12345679, 12345680

    Cette faon de compter repose sur une base 10, car elle se dcompose en utilisant des puissances de 10. Ainsi, le nombre 1024peut se dcomposer de cette faon :

    Pour bien comprendre ce qui suit, vous devez aussi savoir que tout nombre lev la puissance 0 vaut 1, donc .Partant de ce postulat, nous pouvons donc rcrire la dcomposition du nombre 1024 ainsi :

    . Nous multiplions donc la base utilise, ordonne par puissance, par un nombrecompris entre 0 et cette base moins 1 (de 0 9).

    Sauf que votre machine parle en binaire, elle compte donc en base 2. Cela revient donc appliquer la dcomposition prcdenteen remplaant les 10 par des 2. Par contre, vous n'aurez que deux multiplicateurs possibles : 0 ou 1 (et oui, vous tes en base 2).

    Partie 1 : Bien commencer en Java 23/535

    www.openclassrooms.com

  • De ce fait, en base 2, nous pourrions avoir ce genre de chose : , qui peut se traduire dela sorte : donc soit .

    Donc, 1101 en base 2 s'crit 13 en base 10. Et donc pourquoi des paquets de 1024 comme dlimiteur de poids ? Car ce nombrecorrespond une puissance de 2 : .

    Dans le monde de l'informatique, il existe une autre faon de compter trs rpandue : l'hexadcimal. Dans ce cas, nous comptonsen base 16 :

    Code : Console

    1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C.... 5E, 5F, 60, ... A53A, A53B, A53C...

    C'est tordu ! quoi a peut bien servir ?

    Le ct pratique de cette notation c'est qu'elle se base sur une subdivision d'un octet. Pour reprsenter un nombre de 0 15(donc les seize premiers nombres), 4 bits sont ncessaires : et

    . En fait, vous savez maintenant qu'un octet est un regroupement de 8 bits.Utiliser l'hexadcimal permet de simplifier la notation binaire car, si vous regroupez votre octet de bits en deux paquets de 4 bits,vous pouvez reprsenter chaque paquet avec un caractre hexadcimal. Voici un exemple :

    Code : Autre

    10110100 -> 1011 01001011 (en base 2) = 11 (base 10) = B (en base 16)0100 (en base 2) = 4 (base 10) = 4 (en base 16)Donc 10110100 -> 1011 0100 -> B4

    La figure suivante reprsente un nombre binaire plus consquent :

    Un nombre binaire consquent

    Les diffrents types de variablesNous allons commencer par dcouvrir comment crer des variables dans la mmoire. Pour cela, il faut les dclarer. Unedclaration de variable se fait comme ceci :

    Code : Java

    ;

    Partie 1 : Bien commencer en Java 24/535

    www.openclassrooms.com

  • Cette opration se termine toujours par un point-virgule ; (comme toutes les instructions de ce langage). Ensuite, onl'initialise en entrant une valeur.

    En Java, nous avons deux types de variables :

    1. des variables de type simple ou primitif ;2. des variables de type complexe ou 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, et vous allez voir qu'il y a plusieurs faons de dclarer certains de ces types.

    Les variables de type numrique

    Le type byte (1 octet) peut contenir les entiers entre -128 et +127.

    Code : Java

    byte temperature;temperature = 64;

    Le type short (2 octets) contient les entiers compris entre -32768 et +32767.

    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).

    Code : Java

    int temperatureSoleil;temperatureSoleil = 15600000; //La temprature est exprime enkelvins

    Le type long (8 octets) peut aller de (encore plus gros).

    Code : Java

    long anneeLumiere;anneeLumiere = 9460700000000000L;

    Afin d'informer la JVM que le type utilis est long, vous DEVEZ ajouter un "L" la fin de votre nombre, sinon lecompilateur essaiera d'allouer ce dernier dans une taille d'espace mmoire de type entier et votre code ne compilera passi votre nombre est trop grand...

    Partie 1 : Bien commencer en Java 25/535

    www.openclassrooms.com

  • Le type float (4 octets) est utilis pour les nombres avec une virgule flottante.

    Code : Java

    float pi;pi = 3.141592653f;

    Ou encore :

    Code : Java

    float nombre;nombre = 2.0f;

    Vous remarquerez que nous ne mettons pas une virgule, mais un point ! Et vous remarquerez aussi que mme si lenombre en question est rond, on crit .0 derrire celui-ci, le tout suivi de f .

    Le type double (8 octets) est identique float, si ce n'est qu'il contient plus de chiffres derrire la virgule et qu'il n'a pas desuffixe.

    Code : Java

    double division;division = 0.333333333333333333333333333333333333333333334d;

    Ici encore, vous devez utiliser une lettre - le d - pour parfaire la dclaration de votre variable.

    Des variables stockant un caractre

    Le type char contient un caractre stock entre apostrophes ( ' ' ), comme ceci :

    Code : Java

    char caractere;caractere = 'A';

    Des variables de type boolen

    Le type boolean, lui, ne peut contenir que deux valeurs : true (vrai) ou false (faux), sans guillemets (ces valeurs