1 - Ecole Nationale Supérieure d'Ingénieurs de Caen - © dp - 1 - JAVA programma
1 - Ecole Nationale Supérieure d'Ingénieurs de Caen - © dp - 1 - JAVA programmation objet Patrick Ducrot dp@ensicaen.fr http://www.ducrot.org/java/PolycopieJAVA.pdf 2 - Ecole Nationale Supérieure d'Ingénieurs de Caen - © dp - 2 - Plan du document (1/2) Généralités ………………………………………………………………………………………………………………………………………………………………………… 4 Syntaxe de base ……………………………………………………………………………………………………………………………………………………………… 21 Concepts objets, classes, constructeurs, destructeurs, surcharge ……………………………… 29 Héritage, interface, package, droits d'accès ………………………………………………………………………………… 44 Conversion de type, gestion des exceptions ……………………………………………………………………………………… 65 javadoc, le générateur de documentation ………………………………………………………………………………………………… 77 Le format d'archive jar …………………………………………………………………………………………………………………………………………… 83 Gestion de fichiers, flux d'entrée/sortie, sérialisation, java.nio ………………………… 86 Les threads ………………………………………………………………………………………………………………………………………………………………………… 118 Les collections ……………………………………………………………………………………………………………………………………………………………… 131 Les nouveautés de la version 1.5 ……………………………………………………………………………………………………………… 142 Les applets ………………………………………………………………………………………………………………………………………………………………………… 171 Les interfaces utilisateurs avec le package java.awt …………………………………………………………… 189 Gestion des événements …………………………………………………………………………………………………………………………………………… 230 Le package javax.swing …………………………………………………………………………………………………………………………………………… 252 Java et la sécurité …………………………………………………………………………………………………………………………………………………… 284 Obfuscation de code ……………………………………………………………………………………………………………………………………………… 272 Programmation réseau ………………………………………………………………………………………………………………………………………………… 307 Remote Method Invocation ……………………………………………………………………………………………………………………………………… 323 ant ……………………………………………………………………………………………………………………………………………………………………………………………… 339 Interaction Java/Base de données ………………………………………………………………………………………………………………… 350 JavaBeans ……………………………………………………………………………………………………………………………………………………………………………… 364 3 - Ecole Nationale Supérieure d'Ingénieurs de Caen - © dp - 3 - Plan du document (2/2) Les servlets ……………………………………………………………………………………………………………………………………………………………………… 419 Java Server Pages ………………………………………………………………………………………………………………………………………………………… 449 Java Native Interface ……………………………………………………………………………………………………………………………………………… 474 4 - Ecole Nationale Supérieure d'Ingénieurs de Caen - © dp - 4 - Généralités 5 - Ecole Nationale Supérieure d'Ingénieurs de Caen - © dp - 5 - Généralités Langage conçu par les ingénieurs de « SUN Microsystem » (société rachetée par Oracle en avril 2009) Définition de SUN : "Java est un langage simple, orienté objet, distribué, robuste, sûr, indépendant des architectures matérielles, portable, de haute performance, multithread et dynamique" 6 - Ecole Nationale Supérieure d'Ingénieurs de Caen - © dp - 6 - Généralités • Simple •Inspiré du C++, Fortran, Lisp, Smalltalk •Pas de pointeur; pas de surcharge d'opérateurs; pas d'héritage multiple •Présence d'un "garbage collector" • Orienté objet •La programmation objet modélise des objets ayant un état (ensemble de variables) et des méthodes (fonctions) qui leur sont propres. L’unité de base en Java est la classe. Un des intérêts de Java est de disposer de nombreuses classes déjà faites. Un objet créé à partir d’une classe est une instance. • Distribué •Les fonctions d'accès au réseau et les protocoles internet les plus courants sont intégrés. 7 - Ecole Nationale Supérieure d'Ingénieurs de Caen - © dp - 7 - Généralités • Robuste •Typage des données très strict •Pas de pointeur • Sûr •Java n’est pas compilé à destination d’un processeur particulier mais en « byte code » qui pourra être ensuite interprété sur une machine virtuelle Java (JVM = Java Virtual Machine). Le "byte code" généré est vérifié par les interprétateurs java avant exécution. •Un débordement de tableau déclenchera automatiquement une exception. •L’absence d’arithmétique de pointeur évite les malversations. 8 - Ecole Nationale Supérieure d'Ingénieurs de Caen - © dp - 8 - Généralités •Portable •Les types de données sont indépendants de la plate forme (par exemple les types numériques sont définis indépendamment du type de plate forme sur laquelle le byte code sera interprétée). •Haute performance •Java est un langage pseudo interprété •Techniques de "Just in Time" (JIT) améliorent ces performances 9 - Ecole Nationale Supérieure d'Ingénieurs de Caen - © dp - 9 - Généralités •Multi thread •Une application peut être décomposée en unités d'exécution fonctionnant simultanément •Dynamique •Les classes Java peuvent être modifiées sans avoir à modifier le programme qui les utilise. 10 - Ecole Nationale Supérieure d'Ingénieurs de Caen - © dp - 10 - Les différentes version de java • Java 1.0 (23 janvier 1996) • 8 Packages • 212 Classes et Interfaces • 1545 Méthodes • Java 1.1 (19 février 1997) • 23 Packages • 504 Classes et Interfaces • 3 851 Méthodes • Java 1.2 (Java 2) (9 décembre 1998) • 60 Packages • 1 781 Classes et Interfaces • 15 060 Méthodes • Et bien plus dans les versions 1.3 (8 mai 2000), 1.4 (6 février 2002), 1.5 (tiger, 30 septembre 2004) ,1.6 (mustang, 11 décembre 2006) • Dernière version: 1.7, le 28 juillet 2011 (OpenSource et sous l’ère Oracle). 11 - Ecole Nationale Supérieure d'Ingénieurs de Caen - © dp - 11 - Les outils de développement Quelques environnements java : •Java SE (Standard Edition) •Java ME (Mobile Edition) •Java EE (Enterprise Edition) 12 - Ecole Nationale Supérieure d'Ingénieurs de Caen - © dp - 12 - L'environnement J2SE L’outil de base : le JDK (Java Development Kit) de SUN : • http://java.sun.com (lien redirigé sur le site d’Oracle). • gratuit • comprend de nombreux outils : • le compilateur : javac • l’interpréteur d’application : java • l’interpréteur d’applet : appletviewer • le débogueur : jdb • le générateur de documentation : javadoc • etc. Des environnements de développement: • http://www.eclipse.org • http://www.netbeans.org/ 13 - Ecole Nationale Supérieure d'Ingénieurs de Caen - © dp - 13 - Utilisation de JAVA Le langage Java peut générer : •des applications •des applets •des servlets •des midlets •etc. 14 - Ecole Nationale Supérieure d'Ingénieurs de Caen - © dp - 14 - Génération de code exécutable dans les langages de programmation Le code est généré par un compilateur en plusieurs étapes : •Vérification syntaxique. •Vérification sémantique (typage). •Production de code dans un langage plus proche de la machine. •Production de « briques » de code assemblables. 15 - Ecole Nationale Supérieure d'Ingénieurs de Caen - © dp - 15 - Génération de code exécutable dans les langages de programmation Compilation Code Source Code Source Code Objet Code Exécutable Code Objet Edition de liens 16 - Ecole Nationale Supérieure d'Ingénieurs de Caen - © dp - 16 - Génération de code exécutable dans les langages de programmation Avantages/inconvénients du code natif •Rapidité d’exécution •Nécessité de recompiler lors du portage d’un logiciel sur une autre architecture/système d’exploitation •Choix de la distribution du logiciel : source ou binaire ? 17 - Ecole Nationale Supérieure d'Ingénieurs de Caen - © dp - 17 - Génération de code en java Compilation : javac Code source .java Code source .java Code objet .class Code objet .class JVM Exécution 18 - Ecole Nationale Supérieure d'Ingénieurs de Caen - © dp - 18 - Principe Machine Virtuelle Bytecode Interprète sous Windows Interprète sous linux Interprète sous solaris Code source Compilateur sous windows Compilateur sous linux Compilateur sous solaris Interprète sous Mac OS 19 - Ecole Nationale Supérieure d'Ingénieurs de Caen - © dp - 19 - Avantages/Inconvénients du bytecode Code portable au niveau binaire Moins efficace que du code natif (mais compensé par la technologie JIT) 20 - Ecole Nationale Supérieure d'Ingénieurs de Caen - © dp - 20 - Exemple d’application Fichier: First.java public class First { public static void main (String args []) { System.out.println ("Premier exemple") ; } } Compilation : javac First.java Création de First.class Exécution : java First 21 - Ecole Nationale Supérieure d'Ingénieurs de Caen - © dp - 21 - Syntaxe de base 22 - Ecole Nationale Supérieure d'Ingénieurs de Caen - © dp - 22 - Syntaxe de base du langage Java Les commentaires existent sous plusieurs formes: •Commentaires multi lignes /* */ •Commentaires sur une seule ou fraction de ligne // •Commentaires destinés au générateur de documentation javadoc /** * * */ 23 - Ecole Nationale Supérieure d'Ingénieurs de Caen - © dp - 23 - Type de données prédéfinis Nombres entiers •byte -2^7 , (2^7 )-1 -128,127 •short -2^15 , (2^15) -1 -32768,32767 •int -2^31 , (2^31) - 1 -2147483648, 2147483647 •long -2^63 , (2^63) - 1 9223372036854775808, 9223372036854775807 •Les entiers peuvent être exprimés en octal ( 0323), en décimal (311) ou en hexadécimal (0x137). 24 - Ecole Nationale Supérieure d'Ingénieurs de Caen - © dp - 24 - Type de données prédéfinis Nombres réels •float simple précision sur 32 bits 1.4023984 e-45 3.40282347 e38 •double double précision sur 64 bits 4.94065645841243544 e-324 1.79769313486231570 e308 •Représentation des réels dans le standard IEEE 754Un suffixe f ou d après une valeur numérique permet de spécifier le type. •Exemples : double x = 145.56d ; float y = 23.4f ; float f = 23.65 ; // Erreur 25 - Ecole Nationale Supérieure d'Ingénieurs de Caen - © dp - 25 - Type de données prédéfinis boolean • Valeurs true et false Un entier non nul est également assimilé à true Un entier nul est assimilé à false char • Une variable de type char contient un seul caractère codé sur 16 bits (jeu de caractères 16 bits Unicode contenant 34168 caractères). • Des caractères d'échappement existent : \b Backspace \t Tabulation horizontale \n Line Feed \f Form Feed \r Carriage Return \" Guillemet \' Apostrophe \\ BackSlash \xdd Valeur hexadécimale \ddd Valeur octale \u00xx Caractère Unicode (xx est compris entre 00 et FF) 26 - Ecole Nationale Supérieure d'Ingénieurs de Caen - © dp - 26 - Types de données prédéfinis Chaînes de caractères • Les chaînes de caractères sont manipulées par la classe String ; ce n'est donc pas un type scalaire, mais il s’en approche beaucoup dans son utilisation. uploads/Ingenierie_Lourd/ poly-copie-java.pdf
Documents similaires










-
41
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jui 05, 2022
- Catégorie Heavy Engineering/...
- Langue French
- Taille du fichier 5.2105MB