Info 323 Introduction à la Programmation Objet et Java Références
Transcription
Info 323 Introduction à la Programmation Objet et Java Références
Sommaire : Info 323 • Présentation du langage Java • Programmation objet • Déclaration des classes • Éléments et syntaxe du langage • Héritage et interfaces • Librairie de classes (l'API) • Les exception • Interfaces graphiques (cours suivant) Introduction à la Programmation Objet et Java 1 2 Références Références •Différents tutoriels Java en ligne : • Java - notions élémentaires, Bertrand Florat • Un cours donné à ESIL, Touraïvane • Programmation Java, Emmanuel Remy • Developpez.com, site très utile, nombreux pointeurs • Développons en Java, Jean Michel DOUDOUX • Penser en java, Bruce Heckel • Les fondements du langage Java, RM di Scala • The Java Tutorial de Sun • Quelques livres sur Java disponibles à la BU Java la synthèse, Gilles Clavel & all. (InterEditions). Programmer en Java, Claude Delannoy (Eyrolles). Introduction à Java, Patrick Niemeyer (O'Reilly) Comment programmer en Java, Deitel et Deitel (Goulet). Algorithmes en Java : concepts fondamentaux, structures de données, Robert Sedgewick (Pearson Education) Java 2 pour les nuls, Barry Burdr (First interactive). Java 2, Laura Lemay (CampusPress). Java en action, Ian F. Darwin (O'Reilly). Java in a Nutshell, édition française par David Flanagan (O'Reilly). Au coeur de JAVA 2, Cay Horstmann, Gary Cornell (Campus Press). • Outils et Docummentation : • http://www.oracle.com/technetwork/java/ Site officiel (JDK et doc) • http://download.oracle.com/javase/1.5.0/docs/api/ • http://www.eclipse.org/ 3 4 Présentation du langage Java Le résumé des différentes versions Historique • 1992 : Sun Microsystems développe le langage Oak James Gosling • • • • 5 • project Green 1993 : succès HTML (CERN) et d'Internet 1995 : sortie officielle du JDK (Java Development Kit) 1995 : Netscape prend la licence 1998 : Version 1.2, Java a été renommé Java 2 2004 : J2SE 5.0 (Java 2 Standard Edition, en fait J2SE 1.5.0) 6 Qu'est-ce que JAVA ? D'après SUN, c'est un langage : • • • • • • • orienté objet, simple, robuste et sûr, interprété, indépendant de l'architecture et portable, efficace et dynamique, distribué, multitâches Orienté objet • Les types sont définis par des classes (sauf les types primitifs : int, float, boolean, char) • La définition d'une classe correspond à un fichier. • Bibliothèque de classes (ou API), organisée en paquetages (package) – java.awt : pour les interfaces graphiques – java.applet : pour créer des applets sur le Web – ... réutilisation • La classe Object (java.lang) est la racine de la hiérarchie des classes 7 8 Java est robuste Un langage simple • • • • • Syntaxe proche de C et C++ • Pas de pointeurs, juste des références … • Ramasse-miette (garbage collector) intégré et automatique • Pas d'héritage multiple 9 Langage fortement typé, Gestion de la mémoire par un Ramasse-miette , Pas d’accès direct à la mémoire (pas de pointeurs à la C), Mécanisme d'exception, – Accès à une référence null exception, – division par 0 exception, – etc… • Compilateur contraignant (erreur si exception non gérée, si utilisation d’une variable non affectée, ...), • Contrôles effectués par interpréteur lors de exécution • Seules les conversions sûres sont automatiques. 10 Java est sécurisé Java est Interpreté et Portable • Un programme Java qui plante ne menace pas le système d'exploitation. Il ne peut pas y avoir d'accès direct à la mémoire. • L'accès au disque dur est contraignant pour une applet : MonProg.java Exécution de MonProg – impossibilité d'ouvrir, lire, écrire ou effacer un fichier sur le système de l'utilisateur – impossibilité de lancer un autre programme – les programmes ne peuvent pas se connecter à d'autres sites Web que celui dont ils proviennent 11 MonProg.class Byte-Code 12 Java "Virtual Machine" Java est Interpreté et Portable Java est Interpreté et Portable • Le compilateur Java génère du byte code. • La Machine Virtuelle Java (JVM) est présente sur Unix, Windows, Mac, OS/2, Firefox, IE, ... • La taille des types primitifs est indépendante de la plate-forme. • Java supporte un code source écrit en Unicode. • Java est accompagné de librairies standards. • Java est adapté à INTERNET, les applets sont généralement de petite taille. Chaque navigateur possède sa propre machine virtuelle. 13 14 Java est Interpreté et Portable Java est Efficace et Dynamique Credo de Sun : Le byte code est interprété, cependant : "Write Once, Run Everywhere ! " • Les interpréteurs intègrent souvent des techniques de Compilation en code machine à la volée • Il existe aussi des compilateurs qui génèrent du code natif (même si c'est interdit par les spec Java) • Le Chargement des classes se fait dynamiquement lors de l'exécution, lorsqu'elles sont nécessaires 15 16 Java est multitâche Java est Réparti • Java permet l'utilisation de threads qui sont des unités d'exécution isolées. La JVM, elle même, utilise plusieurs threads. • Threads intégrés au langage et aux API : • Permet de créer – des pages HTML avec du code Java – des applications réparties – des applications client/serveur – garbage collector (thread de basse priorité) – java.lang.Thread, java.lang.Runnable • Packages: java.net, java.rmi, java.idl (CORBA). • Accès à la technologie J2EE "Java 2 Enterprise Edition" 17 • Implémentation propre à chaque JVM. 18 Les outils Les outils • Environnements de développement : – Sun JDK (compilateur, interpréteur,...) – IDE (Integrated Development Environment) commerciaux : • WebSphere Studio (IBM), • Forte for Java(Sun), • Jbuilder (Borland), utilisé dans le cours – IDE gratuits : Eclipse, NetBeans, BlueJ • Intégration dans les navigateur HTML : – Firefox (Mozilla) – Internet Explorer – etc.. 19 Les points faibles de Java • Le monde Java bouge beaucoup de nombreuses évolutions • Les machines virtuelles Java (JVM) sont encore lentes. • Java est gourmand en mémoire • Java reste la propriétaire (Sun, Oracle) (pas de soutient de la part de Microsoft) 21 Java Development Kit Nom Description java.exe Machine virtuelle Java, permet l'exécution des programmes javac.exe Compilateur Java appletviewer.exe Machine virtuelle Java permettant l'exécution des applets jar.exe Permet la création et la manipulation d'Archives Java (JAR) javadoc.exe Générateur de documentation Java, au format HTML 20