Version 3.7 LE LANGAGE JAVA Petit mémento de syntaxe & éléments de programmatio
Version 3.7 LE LANGAGE JAVA Petit mémento de syntaxe & éléments de programmation Albin MORELLE Esiee – 2010 ESIEE – AM – Poly Java v 3.7 – Mai 2010 Page 1 / 85 Tous mes remerciements à mon collègue Denis Bureau pour ses relectures attentives et suggestions pertinentes. Page 2 / 85 ESIEE – AM – Poly Java v 3.7 – Mai 2010 BIBLIOGRAPHIE ET SITES DE REFERENCE Le présent document emprunte aux principales références bibliographiques suivantes : [ 1 ] BARNES, David J., KÖLLING, Michael. Objects First with Java – A Practical Introduction using BlueJ (4th ed.). Prentice Hall / Pearson Education, 2008, 560 p. ISBN : 0136060862 Ce livre est un manuel d’apprentissage de la programmation objet en Java avec l’environnement BlueJ. Il est destiné à des débutants en programmation. Il est très pédagogique mais ne prend véritablement toute sa force qu’utilisé en interactif dans l’excellent environnement de développement BlueJ fourni. L’environnement BlueJ est téléchargeable depuis www.bluej.org. [ 2 ] GOSLING, James, & al. The Java Language Specification (3rd ed.). Addison Wesley, 2005, 688 p. ISBN : 0321246780 Ce livre est le manuel de référence du langage Java. Il est écrit par les créateurs du langage. Il est consultable sous forme électronique sur java.sun.com/docs/books/jls/ [ 3 ] CAMPIONE, Mary, & al. The Java Tutorial – A short course on the basics (4th ed.). Addison Wesley, 2006, 672 p. ISBN : 0321334205 Ce livre est un manuel d’apprentissage de la programmation en Java. Il contient de nombreux exemples pratiques. Il focalise sur les APIs nécessaires à la plupart des programmeurs débutants ou de niveau intermédiaire. SITES DE REFERENCE Le site officiel de Java est : java.sun.com . On peut notamment y consulter avec intérêt : - des tutoriels : java.sun.com/docs/books/tutorial/ - une grande collection de petits exemples de programmes : java.sun.com/developer/codesamples/examplets/ - des recommandations de style : java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html - le descriptif de tous les paquetages, classes et méthodes standard : java.sun.com/javase/6/docs/api/ - le mode d’emploi du générateur de documentation javadoc : java.sun.com/j2se/javadoc/index.jsp - une préparation à la certification de programmeur Java : java.sun.com/docs/books/tutorial/extra/certification/ ESIEE – AM – Poly Java v 3.7 – Mai 2010 Page 3 / 85 SOMMAIRE 1 LANGAGE ET PROGRAMMATION ORIENTÉS OBJETS ...................... 7 2 PROGRAMME JAVA ............................................................................... 8 2.1 Style de programmation ............................................................................................. 8 2.2 Identificateurs .............................................................................................................. 8 2.3 Commentaires .............................................................................................................. 8 2.3.1 Commentaires de documentation .................................................................................... 8 2.3.2 Commentaires d’implémentation .................................................................................... 9 2.4 Fichier JAVA ................................................................................................................ 9 2.4.1 Nom et contenu d’un fichier java .................................................................................... 9 2.4.2 Compilation, exécution, génération de la documentation ............................................. 10 2.5 Paquetages ................................................................................................................ 10 2.5.1 Paquetages standard ...................................................................................................... 10 2.5.2 Affectation d’une classe à un paquetage ....................................................................... 10 2.5.3 Importation d’une classe d’un paquetage ...................................................................... 11 3 CLASSES ET INTERFACES ................................................................. 12 3.1 Classes standard ....................................................................................................... 12 3.2 Classes abstraites et sous-classes ......................................................................... 13 3.2.1 Classes abstraites .......................................................................................................... 13 3.2.2 Sous-classe .................................................................................................................... 14 3.3 Interfaces .................................................................................................................... 15 3.3.1 Interface ........................................................................................................................ 16 3.3.2 Classe implantant une interface .................................................................................... 16 3.4 Enumération ............................................................................................................... 16 3.5 Classes imbriquées (Nested classes) ..................................................................... 17 3.6 Contrôle d’accès par les modificateurs .................................................................. 18 4 INSTANCE DE CLASSE ........................................................................ 20 5 TYPES DE DONNEES ........................................................................... 21 5.1 Types primitifs ........................................................................................................... 21 5.2 Types objet (ou types référence) ............................................................................. 22 5.2.1 Classes enveloppes ........................................................................................................ 22 5.2.2 Chaîne de caractères non modifiable (String) ............................................................... 23 5.2.3 Chaîne de caractères modifiable (StringBuffer) ............................................................ 23 5.2.4 Tableau .......................................................................................................................... 23 5.2.5 Collection ...................................................................................................................... 25 5.3 Transtypage ............................................................................................................... 27 6 OPERATEURS ET EXPRESSIONS ...................................................... 29 6.1 Opérateurs et expressions arithmétiques .............................................................. 29 6.2 Opérateurs et expressions booléennes .................................................................. 30 6.3 Opérateurs relationnels ............................................................................................ 30 Page 4 / 85 ESIEE – AM – Poly Java v 3.7 – Mai 2010 7 METHODES ........................................................................................... 31 7.1 Définition et appel d’une méthode ordinaire .......................................................... 31 7.2 Constructeur .............................................................................................................. 32 7.3 Méthode main ............................................................................................................ 33 8 INSTRUCTIONS .................................................................................... 34 8.1 Instruction d’affectation............................................................................................ 34 8.2 Instructions de contrôle............................................................................................ 34 8.2.1 Instructions de sélection ................................................................................................ 34 8.2.2 Instructions de boucle ................................................................................................... 36 8.3 Instructions d’entrée / sortie .................................................................................... 38 8.3.1 Notion de flux ............................................................................................................... 38 8.3.2 Entrée / sortie terminal .................................................................................................. 38 8.3.3 Entrée / sortie fichier ..................................................................................................... 39 8.3.4 Lecture d’une chaîne de caractères formatée ................................................................ 40 9 HERITAGE ............................................................................................. 42 9.1 Notion d’héritage ....................................................................................................... 42 9.2 Qu’hérite une sous-classe ? .................................................................................... 43 9.3 Redéfinir une méthode.............................................................................................. 43 9.4 Type statique / dynamique – Liaison statique / dynamique.................................. 46 9.4.1 Type statique / dynamique – Transtypage ..................................................................... 46 9.4.2 Liaison statique / dynamique ........................................................................................ 47 9.5 Polymorphisme .......................................................................................................... 48 9.6 Classes et méthodes particulières .......................................................................... 49 9.7 Interfaces .................................................................................................................... 49 10 EXCEPTIONS ........................................................................................ 50 10.1 Exceptions contrôlées et non contrôlées ............................................................... 50 10.2 Classes d’exception standard .................................................................................. 51 10.2.1 La hiérarchie Error ........................................................................................................ 51 10.2.2 La hiérarchie Exception ............................................................................................. 51 10.2.3 La hiérarchie RuntimeException .............................................................................. 51 10.3 Lancement d’une exception ..................................................................................... 51 10.4 Capture d’une exception........................................................................................... 52 10.4.1 Clause throws .............................................................................................................. 52 10.4.2 Instruction try .. catch................................................................................................ 52 10.5 Définir une nouvelle classe d’exception ................................................................. 54 11 ANNEXE 1 – PROGRAMMATION GRAPHIQUE .................................. 55 11.1 Swing .......................................................................................................................... 55 11.2 Conteneurs et composants ...................................................................................... 56 11.3 Gestion de la mise en page ...................................................................................... 57 11.4 Gestion des événements .......................................................................................... 58 11.4.1 Notion d’événement ...................................................................................................... 58 11.4.2 Réaliser un gestionnaire d’événement ........................................................................... 59 ESIEE – AM – Poly Java v 3.7 – Mai 2010 Page 5 / 85 11.5 Affichage / fermeture d’une fenêtre graphique ...................................................... 60 11.6 Architecture des composants Swing ...................................................................... 60 11.7 Applets ....................................................................................................................... 61 12 ANNEXE 2 – THREADS ........................................................................ 63 12.1 Créer un thread par extension de la classe Thread ............................................... 63 12.2 Créer un thread par implémentation de l’interface Runnable............................... 64 12.3 Synchronisation et communication entre threads ................................................ 64 12.3.1 Sections critiques et synchronisation ............................................................................ 64 12.3.2 Communication entre threads ....................................................................................... 65 13 ANNEXE 3 – CONCEPTION ET DEVELOPPEMENT EN JAVA ........... 66 13.1 Conseils généraux pour une bonne conception des classes............................... 66 13.2 Architecture d’une application interactive : le modèle MVC................................. 67 13.3 Tests unitaires ........................................................................................................... 70 13.3.1 Définitions..................................................................................................................... 70 13.3.2 JUnit .............................................................................................................................. 71 13.4 Java Beans ................................................................................................................. 72 13.5 Design patterns ......................................................................................................... 74 13.5.1 Exemple : le modèle Singleton ..................................................................................... 75 13.5.2 Exemple : le modèle Decorator ..................................................................................... 75 14 ANNEXE 4 – MACHINE VIRTUELLE JAVA (JVM) ............................... 77 15 ANNEXE 5 – COMMUNICATION ENTRE JAVA ET C (JNI) ................. 79 15.1 Appel d’une procédure C .......................................................................................... 80 15.1.1 Déclaration et appel java ............................................................................................... 80 15.1.2 Prototype C ................................................................................................................... 81 15.1.3 Implémentation C .......................................................................................................... 81 15.2 Echange de données entre Java et C ...................................................................... 82 15.2.1 Déclaration et appel java ............................................................................................... 82 15.2.2 Prototype C ................................................................................................................... 83 15.2.3 Implémentation C .......................................................................................................... 83 16 ANNEXE 6 – PLATES-FORMES JAVA ................................................ 84 17 ANNEXE 7 – GLOSSAIRE .................................................................... 85 Page 6 / 85 ESIEE – AM – Poly Java v 3.7 – Mai 2010 ESIEE – AM – Poly Java v 3.7 – Mai 2010 Page 7 / 85 1 LANGAGE ET PROGRAMMATION ORIENTÉS OBJETS Java1 est un langage de programmation orienté objets. Un objet est une représentation simplifiée d’une entité du monde réel : entité concrète (ex : ma voiture) ou non (ex : la date d’aujourd’hui). Un objet se caractérise par son état et son comportement. Un objet stocke son état dans des variables appelées champs (ou attributs) et présente son comportement au travers de fonctionnalités appelées méthodes. Exemple d’objet : maVoiture = { valeur des attributs : Fiat, grise, 6 l/100km, …; méthodes : démarrer, arrêter, accélérer, …} Typiquement, l’état est encapsulé au cœur de l’objet et n’est accessible depuis l’extérieur de l’objet, en consultation ou modification, que via les méthodes offertes par cet objet. Exemple : l’objet maVoiture On interagit avec un objet en lui envoyant un message de demande d’activation d’une de ses méthodes. Exemple d’envoi d’un message à un objet : maVoiture.accélérer( ); Une méthode particulière, appelée constructeur, permet d’initialiser l’état de l’objet à sa création. Une classe sert à regrouper sous une même catégorie et un même nom générique les objets partageant le même type d’état et le même comportement. Une classe est donc un type d’objet ; on dit réciproquement qu’un objet est une instance de classe. Exemple de classe : Automobile = { attributs : marque, couleur, consommation, …; méthodes : démarrer, arrêter, accélérer, …} Les classes peuvent être organisées en hiérarchies. Chaque classe hérite alors des attributs et méthodes des classes situées sur sa ligne hiérarchique ascendante. Réaliser un programme dans un langage orienté objets, c’est : - modéliser par des classes les objets que l’on a à manipuler - écrire ces classes dans le langage de programmation orienté objets - créer des objets instances de ces classes - communiquer avec ces objets en invoquant leurs méthodes. 1 Java est né en 1995 dans l’entreprise californienne Sun Microsystems. Il a été conçu par James GOSLING & al. Fiat grise 6 arrêter accélérer setCouleur getCouleur . . . démarrer Page 8 / 85 ESIEE – AM – Poly Java v 3.7 – Mai 2010 2 PROGRAMME JAVA 2.1 Style de programmation Il est largement admis que le respect de la syntaxe et un programme uploads/s3/ polyjava.pdf
Documents similaires
-
120
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Apv 29, 2022
- Catégorie Creative Arts / Ar...
- Langue French
- Taille du fichier 0.5161MB