351 likes | 538 Views
Introduction à JAVA. Sylvie Billot Maître de Conférences en Informatique Laboratoire d’Informatique Fondamentale d’Orléans Université d’Orléans sylvie.billot@lifo.univ-orleans.fr. Bibliographie. Java, la synthèse - G.CLAVEL, N.MIROUZE, S. MUNEROT, E.PICHON, M.SOUKAL (InterEditions 1998)
E N D
Introduction à JAVA Sylvie Billot Maître de Conférences en Informatique Laboratoire d’Informatique Fondamentale d’Orléans Université d’Orléans sylvie.billot@lifo.univ-orleans.fr Introduction à Java
Bibliographie • Java, la synthèse - G.CLAVEL, N.MIROUZE, S. MUNEROT, E.PICHON, M.SOUKAL (InterEditions 1998) • Java par la pratique– P. NIEMEYER et J. PECK (O’Reilly 1996) • Apprendre Java et C++ en parallèle– J.B. BOICHAT (Eyrolles 2000) Introduction à Java
Sur l’Internet • http://java.sun.com/docs/books/tutorial/ • www.eteks.com/coursjava/ • www.infres.enst.fr/~charon/coursJava/ • http://penserenjava.free.fr/ • http://www.club-java.com/ • http://www.commentcamarche.net/ Introduction à Java
Qu'est-ce que Java ? Présentation du langage Java • Un environnement de programmation pour applications réseaux • Un langage de programmation objet (comme C++) • Une architecture de «Virtual Machine» (les applications écrites avec JAVA sont indépendantes de la machine réelle) • Un ensemble d'interfaces de programmation (Application Programming Interfaces ou API) • Un ensemble d'outils (le Java Developer’s Kit) Introduction à Java
Historique Bref historique • 1991 : projet Oak (langage pour l'électronique grand public) • 1994 : Java / HotJava • août 95 : licence vendue à Netscape • Sept. 95 : JDK 1.0 b1 • Déc. 95 : Microsoft se dit intéressé • Janv. 96 : JDK 1.0.1 • Eté 96 : Java Study Group ISO/IEC JTC 1/SC22 • Fin 96 : RMI, JDBC, JavaBeans, ... • Mars 97 : JDK 1.1 • Début 98 : JDK1.2 Introduction à Java
Données Procédures et Fonctions Programmation «classique» Caractéristiques - 1 En Java, tout est «classe» Caractéristiques de Java attributs méthodes messages Programmation «objet» Introduction à Java
Brève «histoire» de la programmation -1- Caractéristiques de Java • Un programme = une tâche à accomplir, une tâche à résoudre • Modéliser cette tâche/ ce problème • ALGORITHME • Traduire en instructions exécutables par la nachine • PROGRAMME • Etude des «bonnes méthodes» de conception/programmation = GENIE LOGICIEL Introduction à Java
Brève «histoire» de la programmation -2- Caractéristiques de Java • «Préhistoire» : la machine EST le programme, les données sont externes (cartes) • Machine de Von Neumann : séparation • contrôle (programme) • exécution (UC/UAL) • données (Mémoire) • Langage machine • Assembleur (mnémonique) • Instructions : FORTRAN, COBOL (années 50) Introduction à Java
Brève «histoire» de la programmation -3- Caractéristiques de Java • Langages structurés : ALGOL, Pascal (années 60) • blocs d’instructions, procédures, fonctions • instructions standards (si, tantque, etc.) • typage strict des données • Langages modulaires : Modula, Ada (années 70) • regrouper les sous-programmes en modules • programmer par assemblages de modules • Leçon : plus d’abstraction permet plus de sûreté de programmation (programmes plus aisés à concevoir, plus faciles à lire et à maintenir, plus portables) • Mais la conception se résume toujour à «Comment faire ?»(i.e. quelle suite d’instructions utiliser?) Introduction à Java
Brève «histoire» de la programmation -4- Caractéristiques de Java • Langages déclaratifs : années 60-70aller plus loin dans l’abstraction en spécifiant seulement ce qu’on veut calculer, en laissant au système le fait de savoir comment faire. La question est alors «Que faire ?» • programmation fonctionnelle (LISP) • programmation en logique (Prolog) • Dans tous ces modèles de programmation, les données restent extérieures, on se concentre sur les traitements • Alternative (sous l’influence des méthodes de conception de Bases de Données) : mettre les données au centre des préoccupations, ce sont elles qui détermine les actions. . . Introduction à Java
Brève «histoire» de la programmation -5- Caractéristiques de Java • Le modèle objet : Simula (1967), Smalltalk, C++, JavaUn programme est un ensemble d’objets indépendants qui collaborent par envoi/réception de messagesLa question devient «Qui fait quoi ?» • Abstraction : la réalité est «conceptualisée» • Modularité : le programme est un ensemble d’objets, des modules cohérents et organisés • Encapsulation, polymorphisme, surcharge • Avantages : lisibilité, maintenance, réutilisabilité, composabilité, extensabilité, unification des méthodes de conception (UML) et des langages (Java) Introduction à Java
Comparaison de Java et C++ Caractéristiques de Java • Quasiment la même syntaxe • Java plus simple car suppression des notions de • Pointeurs • Surcharges d’opérateurs • Héritage multiple • Libération explicite de mémoire (pas besoin de destructeurs en Java) • Particularité des chaînes et tableaux (ce sont des objets en Java) • Java moins rapide car portabilité Introduction à Java
Caractéristiques - 2 Caractéristiques de Java • Java est orienté objet • simple à prendre en main, il permet de développer rapidement des applications • Langage à la fois compilé et interprété : • Java produit du byte-code indépendant de la plate forme et interprétable par une machine virtuelle : la Java Virtual Machine (JVM) Introduction à Java
code source Compilateur code source byte-code Compilateur code source Interpréteur Interpréteur Traducteur code machine code machine JVM système d’exploitation système d’exploitation système d’exploitation Matériel Matériel Matériel La machine virtuelle Caractéristiques de Java + = Introduction à Java
Caractéristiques - 3 Caractéristiques de Java • à la fois compilé et interprété : • un programme Java est ainsi exécutable dans n’importe quel environnement disposant d’une JVM • Pas de phase d’édition de liens (garantit la PORTABILITE) • Java est multi-thread (plusieurs tâches ensembles) • Java est distribué(applications clients-serveur) Introduction à Java
io applet awt net lang File String Graphics Applet URL … Component Socket AudioClip Thread … … … … Les paquetages centraux de Java Introduction à Java
Caractéristiques - 4 Caractéristiques de Java • Java est • robuste (vérification du comportement du code, traitement des exceptions) • portable (indépendant de toute architecture) • sécurisé (vérification de la légalité du code, fonctionnement du «Class Loader») • dynamique (classes chargées selon les besoins) Introduction à Java
Programmer en Java Programmer en Java • Les applications S’exécutent dans le système d’exploitation à condition d’avoir installé une machine virtuelle • Les applets Petites applications destinées à fonctionner sur un navigateur. Une applet a un champ d’action plus réduit qu’une application. Introduction à Java
Serveurs Web INTERNET Programme Client Programme Serveur requête Internet Document(s) Document(s) ezezrzrerttrrteztr ezrrz Documents Navigateur Introduction à Java
Plan du cours 1. Introduction 2. La programmation Objet 3. Des applications Des références : Cours Java de Patrick Itey site de comment ca marche Documents Web INTERNET Introduction 1. Présentation de Java Java est un environnement de programmation pour applications réseaux, orienté objet . . . . Internet URL : http://www.univ-orleans.fr/billot/plan.html Introduction à Java
page HTML INTERNET fichier plan.html : <HTML> <HEAD> <TITLE> plan </TITLE> </HEAD> <BODY> <center><b><i>Plan du cours :</i></b></center> <a href="ch1.html#Intro">1. Introduction</a> . . . </BODY> </HTML> Introduction à Java
Liste des salles Le grand Ecran rue des roses L’Arc place d’Arc Le Martroi place du martroi pages dynamiques INTERNET Liste des films à l’affiche à L’Arc C’est la vie 13h30 - 15h30 - 17h30 19h50 - 22h Le journal de Bridget Jones 12h10 - 16h20 - 20h Le petit poucet 12h - 14h Introduction à Java
page HTML avec applet INTERNET <HTML> <HEAD> <TITLE> liste des films dans une salle </TITLE> </HEAD> <BODY> <u>Liste des films à l’affiche</u> <applet code = "films.class" width =100 height =50> <param name = "salle" value =$Salle> Votre browser ne supporte pas les applets! </applet> </BODY> </HTML> Introduction à Java
Sécurité en Java INTERNET • Visualiser les scénarios d’attaque • Concevoir un jeu de base des comportements malveillants • Concevoir une architecture de sécurité contre les comportements malveillants • Technique globale de protection : n’accepter que les applets signées et cryptées. Introduction à Java
Java Development Kit http://java.sun.com/products ou http://www.javasoft.com La Plate-forme de développement Java • JDK 1.0.x : compatibles avec Java 1.0 • spécifications originales, API et classes élémentaires • JDK 1.1.x : compatibles avec Java 1.1 • améliorations + JavaBeans, JDBC, RMI • événements, sécurité, servlets, JNI • JDK 1.2.x : compatibles avec Java 2 • Swing, améliorations des JavaBeans, • API Java2D, API d’accessibilité Introduction à Java
Le JDK contient • javac : compilateur des sources Java (produit du byte-code) • java : interpréteur de byte-code • appletviewer : interpréteur d’applets • javadoc : générateur de documentation HTML • jdb : débogueur • javap : undécompilateur (revenir du byte-code au source) • jar : compresseur de classes Java La Plate-forme de développement Java Introduction à Java
Les Application Programming Interfaces (API) • Ensembles de classes mises à la disposition du programmeur; • L’API Java Core contient : • java.lang : types de base, Threads, Exceptions • java.io : accès aux I/O • java.util • java.net • java.awt • java.applet • java.math • java.text La Plate-forme de développement Java Introduction à Java
Développer avec Java Programmer en Java Une application Java est organisées en modules (package). Un module contient une ou plusieurs définitions de classes dont une seule est publique. Le nom du fichier = celui de la classe publique + «.java» cycle de développement • stocker le code source dans un fichier «.java» • javac compile ce fichier et le transforme en fichiers de byte-code de suffixe «.class» • java (l’interpréteur) charge ce byte-code et le vérifie • après vérification, exécution de byte-code Introduction à Java
Une application Java Programmer en Java Le texte public class Bonjour{ public static void main() { System.out.println("Bonjour!!!"); } } est sauvegardé dans le fichier «Bonjour.java» Pour compiler :. javac Bonjour.java Cette commande crée le fichier «Bonjour.class» java Bonjour Pour l’exécuter :. Introduction à Java
Une applet Java Programmer en Java Le texte public class BonjourAp extends java.applet.Applet{ public void paint(java.awt.Graphics g) { g.drawString("Bonjour!!!", 125,95); } } est sauvegardé dans le fichier «BonjourAp.java» Pour compiler :. javac BonjourAp.java Cette commande crée le fichier «BonjourAp.class» Introduction à Java
<HTML> <HEAD> <TITLE>l’applet Bonjour </TITLE> </HEAD> <BODY> Voilà le résultat : <applet code = "BonjourAp.class" width =300 height =200> </applet> </BODY> </HTML> Une applet Java (suite) Pour l’exécuter, écrire la page HTML:. Programmer en Java puis l’ouvrir avec appletviewer ou son navigateur préféré. . . Introduction à Java
Le phénomène «JAVA» Conclusion • Langage non «propriétaire» • intègre les progrès des deux dernières décennies : objets, exceptions, threads • propose toutes les API nécessaires pour programmer les Systèmes d’Information des entreprises • environnement d’exécution (portabilité + performance) • distribution sur plates-formes variées, en évolution rapide Introduction à Java