Programmation Java Mohammed Lahmer (©2002-2017) V 1.3 © M. Lahmer 2002-2017 2 S
Programmation Java Mohammed Lahmer (©2002-2017) V 1.3 © M. Lahmer 2002-2017 2 SOMMAIRE 1. Présentation du Langage ..................................................................................................................... 3 1. Bref historique ................................................................................................................. 3 2. Les caractéristiques du langage Java ........................................................................... 3 3. Kit de développement ...................................................................................................... 6 2. Structure du Langage ........................................................................................................................... 9 1. La syntaxe ....................................................................................................................... 9 2. Classes et Objets ............................................................................................................ 12 3. Méthodes et variables de la classe ............................................................................. 15 4. Les packages ................................................................................................................. 16 5. Classes particulières ...................................................................................................... 16 3. L’héritage en Java ................................................................................................................................ 21 1. Principe de L’héritage ................................................................................................. 21 2. Syntaxe de l’héritage ................................................................................................... 21 3. Polymorphisme ............................................................................................................ 23 4. Classes et méthodes abstraites ................................................................................... 24 5. Les interfaces ................................................................................................................. 24 4. Les Collections ...................................................................................................................................... 25 1. Définitions ..................................................................................................................... 25 2. L’interface Collection ................................................................................................... 26 3. La classe ArrayList ........................................................................................................ 27 4. L’interface Map ............................................................................................................. 28 5. Tri et Recherche dans des collections ........................................................................... 29 6. La gestion du temps (Date/Time) .................................................................................. 30 5. Les entrées sorties .............................................................................................................................. 31 1. Les flux java .................................................................................................................. 31 2. La classe File ................................................................................................................. 31 3. Les flux octets ............................................................................................................... 32 4. Les flux caractères ......................................................................................................... 34 5. Les filtres ....................................................................................................................... 35 6. Sérialisation des objets .................................................................................................. 35 6. Le graphique en Java .......................................................................................................................... 37 1. Graphique en Java ......................................................................................................... 37 2. Composants lourds/ légers ............................................................................................ 39 3. Composants de base .................................................................................................... 41 4. Mise en page des composants dans un conteneur ......................................................... 43 5. Traitement des événements ........................................................................................... 45 6. Les autres Composants graphiques ............................................................................... 48 7. Accès aux bases de données en JDBC .......................................................................................... 55 1. Principe .......................................................................................................................... 55 2. Mise en œuvre ............................................................................................................... 55 3. PreparedStatement et CollablStatement .......................................................................... 57 4. Les métadonnées ........................................................................................................... 58 8. Client / Serveur en RMI .................................................................................................................... 60 1. Définition ...................................................................................................................... 60 2. Mise en œuvre ............................................................................................................... 60 © M. Lahmer 2002-2017 3 1. Présentation du Langage 1. Bref historique 1993 : projet Oak (langage pour l'électronique grand public) 1995 : Java / HotJava Mai 95 : Netscape prend la licence Sept. 95 : JDK 1.0 b1 Déc. 95 : Microsoft se dit intéresser Janv. 96 : JDK 1.0.1 Eté 96 : Java Study Group ISO/IEC JTC 1/SC22 Fin 96 : RMI, JDBC, JavaBeans, ... Fév. 97 : JDK 1.1 98 : C’est la grande révolution JDK 1.2 ou java 2 J2SE 1.3 2000 J2SE 1.4 2002 (instruction assert, intégration XML et des extensions de sécurité) J2SE 5.0 2004 (annotation@, type enum, varargs, for each) Java SE 6 2006 (support du web services, amélioration du graphique) Java SE 7 2011 (String dans switch, nouveau flux I/O) Java SE 8 2014 (JavaFX nouveau mode de développement du graphique, fonction Lambda, nouvelle api Date/Time ) 2. Les caractéristiques du langage Java 1. Java est un langage orienté objets Tout est classe (pas de fonctions { l’extérieure d’une classe) sauf les types primitifs (int, float, double, ...) et les tableaux Toutes les classes dérivent de java.lang.Object Héritage simple pour les classes Héritage multiple pour les interfaces Spécification J2ME (Java 2 Micro Edition) J2SE (Java 2 Standard Editon) J2EE (Java 2 Enterprise Edition) Java 2 © M. Lahmer 2002-2017 4 Les objets se manipulent via des références Une API objet standard est fournie La syntaxe est proche de celle de C 2. Langage semi-compilé et semi-interprété Un langage compilé est un langage qui permet de créer un fichier exécutable { partir d’un programme source Un langage interprété est un langage ou le code source doit être lu par un interpréteur pour s’exécuter. Le code source est d’abords compilé en byte code (attention ce n’est pas un code machine) puis interprété et exécuté par la machine virtuelle Java (JVM) 3. Java est portable Les programmes java (à part certains cas très particuliers) sont indépendants de la plate-forme. Il est d’abord traduit dans un langage appelé « bytecode » qui est le langage d’une machine virtuelle (JVM ; Java Virtual Machine) dont les spécifications ont été définies par Sun. La Java Virtual Machine (JVM) est présente sur Unix, Linux,Win32, Mac, OS/2, Mozilla, Netscape, IE, ... La taille des types primitifs est indépendante de la plate-forme contrairement à C ou C++. Java supporte un code source écrit en Unicode facilement internationalisable. © M. Lahmer 2002-2017 5 4. Java est robuste Gestion de la mémoire par un garbage collector qui Libère la mémoire d’un objet non utilisé. Évite la surcharge Mécanisme d'exception des erreurs système pris en charge par la JVM. (Accès à une référence null exception) Compilateur contraignant (erreur si exception non gérée, si utilisation d’une variable non affectée, ...). Tableaux = objets (taille connue, débordement : exception) Contrôle des cast à l'exécution. Seules les conversions sûres sont automatiques. 5. Java est sécurisé La sécurité est indispensable avec le code mobile (Applications répartis). Il existe trois niveaux de sécurité au niveau de la JVM: Vérification : vérifie le byte code. Chargement (Class Loader) : responsable du chargement des classes. (vérifier les autorisations private, protected, public) Contrôle (Security Manager) : contrôle l’accès aux ressources. En plus vous avez la possibilité de certifier le code par une clé. (mécanismes de cryptographie et d’authenticité) Une fois le code est chargé en mémoire, il est impossible de faire un accès direct à la mémoire contrairement à C et C++. 6. Java est multi-thread et Distribué Java est multi-thread Accès concurrents à objet gérés par un monitor (verrou, sémaphore, ..). Implémentation propre a chaque JVM->Difficultés pour la mise au point et le portage. Java est distribué API réseau (java.net.Socket, java.net.URL, ...). Chargement / génération de code dynamique. Applet. Servlet. (RMI) Remote Method Invocation. JavaIDL (CORBA). © M. Lahmer 2002-2017 6 3. Kit de développement 1. JVM / JRE Les machines virtuelles java sont fournies gratuitement par Sun Microsystems. Elles sont fournies sous forme de JRE (Java Runtime Environment) comprenant la machine virtuelle et les package du noyau de java (APIs). Le JRE ne contient pas d'outils ou d'utilitaires pour compiler ou débuguer les applets ou les applications. Intel, Motorala, Ultra-sparc sont des exemples de processeurs intégrés dans des plate-formes type : Pc, Mac ou Station Sun 2. Structure JSDK JSDK (Java Software Developpement Kit) est composé de JRE et plusieurs outils. JRE = JVM + APIs Noyau JSE = JRE + Outils © M. Lahmer 2002-2017 7 Les outils javac : compilateur de sources java java : interpréteur de byte code appletviewer : interpréteur d'applet javadoc : générateur de documentation (HTML, MIF) javah : générateur de header pour l'appel de méthodes natives javap : désassembleur de byte code jdb : débegueur javakey : générateur de clés pour la signature de code rmic : compilateur de stubs RMI rmiregistry : "Object Request Broker" RMI 2. Les APIs de base java.lang : Types de bases, Threads, ClassLoader, Exception, Math, ... java.util : Hashtable, Vector, Stack, Date, ... java.applet java.awt : Interface graphique portable java.io : accès aux i/o par flux, wrapping, filtrage java.net : Socket (UDP, TCP, multicast), URL, ... java.lang.reflect : introspection sur les classes et les objets java.beans : composants logiciels réutilisables java.sql (JDBC) : accès homogène aux bases de données © M. Lahmer 2002-2017 8 java.security : signature, cryptographie, authentification java.serialisation : sérialisation d'objets java.rmi : Remote Method Invocation Javax.swing : extension du java.awt, plus riches en terme de composants Java2D : intégré depuis JDK 1.2 sous forme de sous paquetage du awt. Java.security et Javax.security : contient une implémentation de la plupart des standard de la cryptographie et le hashage. javax.xml : pour le traitement des fichiers xml Il existe d’autres Apis tierces que vous pouvez télécharger indépendamment du Kit : JFreeChart / JGraph : pour la génération des graphes tels que les histogrammes, les secteurs,…. SNMP4J : La supervision d’un réseau par le biais du protocole snmp Jpcap : La capture des trames, paquets qui circules dans un réseau org.apache.commons.net : offre un support à la majorité des protocoles réseaux (FTP/FTPS, NNTP, SMTP(S), POP3(S), IMAP(S), Telnet, TFTP, …) © M. Lahmer 2002-2017 9 2. Structure du Langage 1. La syntaxe 1. Premier programme Java On crée un fichier HelloWorld.java qu’on met directement dans c : public class HelloWorld { public static void main(String[] args) { System.out.println("Hello world"); // Afficher sur Ecran }} La classe Helloworld est public, donc le fichier qui la contient doit s’appeler (en tenant compte des majuscules et minuscules) HelloWorld.java Un fichier .java peut contenir la définition de plusieurs classes mais une et une seule qui doit être publique Compilation avec javac c:\>javac HelloWorld.java o crée un fichier « HelloWorld.class » qui contient le bytecode, situé dans le même répertoire que le fichier « .java » Execution avec java c:\>java uploads/S4/ java-v-1-3.pdf
Documents similaires










-
27
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Dec 10, 2021
- Catégorie Law / Droit
- Langue French
- Taille du fichier 1.4052MB