L'essentiel de Java et de l'objet

Dimension: px
Commencer à balayer dès la page:

Download "L'essentiel de Java et de l'objet"

Transcription

1 L'essentiel de Java et de l'objet Version 2.0 Copyright NTSys

2 Sommaire Technologies objets Présentation de Java Le langage Java Les Applets Interfaces IHM Gestion des Exceptions Entrées Sorties Java Datbase Conectivity (JDBC) Références Annexes Copyright NTSys

3 3

4 Technologies objet L'objet pour quoi faire? L'innovation objet Visibilité et interfaçage Classes, attributs, méthodes et instances L'héritage Le polymorphisme Introduction à UML Copyright NTSys Objectifs du chapître : Présenter l'approche objet et ses principaux domaines d'application Introduire les concepts Fixer la terminologie employée

5 L'objet pour quoi faire? Impacts des objets Langages orientés objet pour faire de la programmation orientée objet: Java, C++, Smalltalk, etc. Méthodologies de conception orientées objet : UML, OMT, Booch, etc. Bases de données orientées objet : Versant, O2, ObjectStore, etc. Mais aussi... Générateurs d'interfaces graphiques basés sur des hiérarchies d'objets graphiques, Environnements de programmation à base de composants, Systèmes d'exploitation orientés objet,... 2

6 L'objet pour quoi faire? Les objets dans la pratique Présentation des concepts objet indépendamment de tout langage de programmation, de toute méthode de conception. Parce que ces techniques (concepts, mécanismes, etc.) sont communes à de nombreux langages, méthodes, etc. Mais... Certains principes ne sont pas intégrés à tous les langages, à toutes les méthodes, etc. Certains principes sont interprétés et / ou nommés différemment par certains langages ou méthodes. 3

7 L objet pour quoi faire? Motivations principales : Faciliter la ré utilisation, maintenance, développements coopératifs, réduction des coûts Contexte: complexité/évolutivité croissante Machine/assembleur Langages évolués L4G (AGL), L5G (IA programme années 85) 2000 P/A Objet Dev Sprirale phases P Struct Cycle V Complexité Processus besoin -> implémentation 4

8 L objet pour quoi faire? La programmation structurée La programmation structurée est basée sur la dichotomie : Description des structures de données Codage des algorithmes de manipulation des structures de données Avantages : Nette séparation entre les données et leur comportement Lisibilité et maintenabilité augmentées 5

9 L objet pour quoi faire? La programmation structurée (suite) Inconvénients : Toutes les données sont mêlées Tous les comportements sont mêlés L'évolution des programmes (modification suite à une erreur de conception ou évolution des besoins) n'est pas facilitée Changement dans les données Identification de tous les algorithmes utilisant ces données Codage des modifications nécessaires dans les algorithmes 6

10 L'innovation objet Modularité et Encapsulation L'idée innovante est de regrouper, dans un même module, les données et les traitements agissant sur ces données. On parle alors d'encapsulation des données. Ces modules constituent, en quelque sorte, des unités de programmation autonomes qu'il va s'agir de faire interagir entre elles pour constituer un programme. Traitement 4 Traitement 1 données Traitement 3 Traitement 2 7

11 L'innovation objet La programmation orientée objets La programmation orientée objet a repris à son compte les principes de modularité et d'encapsulation. Les unités autonomes de programmation y sont désignées sous le terme générique d'objets. La notion d'objet est un regroupement de données et de procédures agissant sur ces données. 8

12 L'innovation objet La programmation orientée objets (suite) Il est possible de réaliser un programme modulaire et respectant le principe d'encapsulation avec un langage structuré, comme il est possible de réaliser un programme mal conçu avec un langage orienté objet. Les langages orientés objet fournissent simplement une abstraction de haut niveau qui permet, si le programmeur en tire parti, de réaliser plus facilement qu'avec les langages ne fournissant pas ce niveau d'abstraction, des programmes bien conçus. 9

13 L'innovation objet La conception orientée objets L'encapsulation facilite : la mise au point des programmes (déboggage), la maintenance des programmes, l'évolution des programmes. L'objet est une unité "naturelle" de programmation puisqu'il regroupe les données et traitements capables d'assurer une fonctionnalité d'un programme. 10

14 L'innovation objet La conception orientée objets (suite) Les objets sont plus qu'une unité de programmation : ils sont aussi une unité de conception. Pour concevoir une application, il est "plus facile" de la découper en termes d'objets. L'abstraction "objet" est proche du processus naturel de réflexion humaine. 11

15 L'innovation objet La conception orientée objets (suite) Les objets que nous percevons dans le monde réel sont des entités possédant des caractéristiques et réalisant des fonctionnalités. On retrouve la dualité données / procédures représentant un même concept. 12

16 L'innovation objet Exemple Un objet Pile, par exemple, contiendrait : la structure de données permettant de sauvegarder les données empilées, la valeur d'un pointeur de sommet de pile, des procédures permettant de réaliser les opérations usuelles : empiler un élément, dépiler un élément, savoir si la pile est vide. Cet objet contient, à lui seul, tout ce qui est nécessaire pour créer et utiliser des piles. 13

17 Visibilité et Interfaçage Dans un objet, les données et procédures peuvent être : accessibles depuis d'autres objets, accessibles seulement depuis les autres procédures de l'objet luimême. On parle de visibilité des données et des procédures. 14

18 Visibilité et Interfaçage En toute rigueur, il faudrait toujours que : Les données ne soient pas visibles (les données ne devraient pouvoir être lues ou modifiées que par l'intermédiaire de procédures prenant en charge les vérifications et effets de bord éventuels) Les procédures "utilitaires" ne soient pas visibles, Seules les fonctionnalités de l'objet, destinées à être utilisées par d'autres objets soient visibles. 15

19 Visibilité et Interfaçage L'ensemble des procédures visibles d'un objet constitue son interface, c'est à dire les points d'entrée que peuvent avoir des objets extérieur pour agir sur lui. L'ensemble des données et des procédures invisibles d'un objet constitue son implémentation, c'est à dire UNE solution technique imaginée par le programmeur pour réaliser l'interface de l'objet. 16

20 Visibilité et Interfaçage Peu importe à l'objet utilisateur quelle est la technologie utilisée pour réaliser ces fonctionnalités. Accélérer Freiner Tourner Marc Interface des objets voiture 17

21 Visibilité et Interfaçage Les programmes utilisant des objets respectant la dualité interface / implémentation sont, par exemple, indépendants de la façon dont sont stockées les données. Pourvu que les fonctionnalités de l'interface ne changent pas, rien n'empêche de changer de solution technique(c'està dire d'implémentation) pour les réaliser. ABS Sans ABS Freiner Interface des objets voiture Marc 18

22 Visibilité et Interfaçage Exemple Supposons que l'objet L1 soit une liste d'entiers. L1 = ( 1, 2, 5, 7, 10, 15, 17, 20 ) Supposons aussi que l'on puisse récupérer la valeur de son 5ème élément en lui envoyant le message Element(5). Ce message retourne l'entier 10. Element est donc un élément de l'interface de la liste. 19

23 Visibilité et Interfaçage Première implémentation : Exemple (suite) La liste L1 est un objet dont la partie données contient un tableau d'entiers et dont la partie procédures contient la fonctionnalité Element (x). L1 Tab -> 1, 2, 5, 7,... Element : paramètre : indice : entier retourne (Tab [indice]) 20

24 Visibilité et Interfaçage Exemple (suite) Deuxième implémentation : La liste L1 est un objet dont la partie donné es contient une liste chaînée d'entiers et dont la partie procédures contient la fonctionnalité Element (x). L1 Début -> 1, -> 2, -> 5, ->... Element : paramètre : indice : entier variables : i,tmp : entier tmp=debut pour i de 1 à indice faire tmp <- tmp.suivant finpour retourne (tmp.valeur) 21

25 Classes, attributs, méthodes et instances La notion de classes Les objets sont créés à partir d'une description générique des données (nom, type) et une définition des fonctionnalités qui agissent sur ces données (nom, signature et code) appelée classe. La notion de classe peut être considérée comme une extension de la notion de type utilisateur (exemple : structure en C). La classe est, en quelque sorte, un moule à partir duquel sont créés les objets. 22

26 Classes, attributs, méthodes et instances Instances et instanciation Le processus de création d'un objet à partir d'une classe s'appelle instanciation. L'instanciation est le processus qui consiste à donner une valeur à l'ensemble des données définies dans sa classe. Les objets sont aussi appelés instances. Une instance est un représentant physique d'une classe, c'est à dire une valuation concrète des données. 23

27 Classes, attributs, méthodes et instances Les attributs Les données d'une classe sont appelées attributs. La classe définit le nom et le type des attributs. Les instances contiennent une valeur pour chaque attribut. D'autres termes sont plus marginalement utilisés : données membres, propriétés. 24

28 Classes, attributs, méthodes et instances Méthodes et messages Les procédures d'une classe sont appelées méthodes. Les méthodes de l'interface d'une classe constituent le protocole de communication des instances de cette classe avec les autres instances de l'application. On dit que les instances communiquent par envois de messages. A la réception d'un message, le langage orienté objet cherche si il y a une méthode qui permet de répondre à ce message (dans un certain ordre pour les cas où il y en aurait plusieurs). 25

29 Classes, attributs, méthodes et instances Exemple Une classe Parallélépipède possède les attributs réels : longueur, largeur et profondeur. et les méthodes : PlusGros qui double la longueur, la largeur et la profondeur d'un parallélépipède, PlusPetit qui divise par deux la longueur, la largeur et la profondeur d'un parallélépipède, PlusLarge qui multiplie par trois la largeur d'un parallélépipède. 26

30 Classes, attributs, méthodes et instances Exemple (suite) Cette classe a, par exemple, deux instances : P1: longueur = 5 largeur = 2 profondeur = 4 P2: longueur = 6 largeur = 4 profondeur = 1 Les méthodes définies dans la classe Parallélépipède peuvent s'appliquer à P1 et à P2. L application de la méthode PlusPetit sur P1 modifie les données de P1. On obtient : P1: longueur = 2,5 largeur = 1 profondeur = 2 27

31 L'héritage Afin d'éviter de définir plusieurs fois les mêmes informations (attributs et/ou méthodes), les langages orientés objet ont imaginé un mécanisme de "factorisation" de l'information contenue dans les classes : le mécanisme d'héritage. La notion d'héritage permet de définir une classe, la sous classe, en en utilisant une autre, la superclasse. 28

32 L'héritage La sous classe spécialise la superclasse : elle possède tous les attributs et toutes les méthodes de celle ci ainsi que des attributs et des méthodes supplémentaires (qui lui sont propres). L'héritage évite au programmeur de spécifier une seconde fois les données et méthodes héritées. Notamment, on peut dire que l'interface de la sous classe inclut l'interface de la superclasse. Synonymes (moins communs) pour superclasse et sous classe : Classe de base et classe dérivée. 29

33 L'héritage Généralisation et spécialisation Afin de mettre en œuvre le mécanisme d'héritage il faut que les liens entre sous classes et superclasses soient concrétisés. On parle de relation de généralisation / spécialisation. Cette relation définit un ordre partiel sur les classes qui se traduit, d'un point de vue sémantique, par une hiérarchisation des concepts. 30

34 L'héritage Généralisation et spécialisation (suite) les concepts plus généraux sont "plus haut" dans la hiérarchie, les concepts les plus spécifiques sont "plus bas". L'ajout d'attributs et de méthodes dans une sous classe correspondent donc à une particularisation de la superclasse. 31

35 L'héritage Exemple 32

36 L'héritage L'héritage multiple Une même sous classe peut posséder plusieurs superclasses directes. On parle alors d'héritage multiple Avantage : expressivité Inconvénient : possibilité d'ambiguïtés 33

37 L'héritage Redéfinition et masquage Dans une sous classe, il est possible de définir une méthode de même nom et de même signature qu'une méthode existant déjà dans une de ses superclasses (directes ou indirectes). La méthode de la sous classe (ex : la méthode affiche d'un carré) redéfinit et masque celle de la superclasse (ex : la méthode affiche d'un rectangle). 34

38 L'héritage Redéfinition et masquage (suite) Du point de vue d'une instance, la méthode qui sera effectivement exécutée lors d'un appel sera, par défaut, la méthode redéfinie. Cependant, il existe généralement dans les langages orientés objet un moyen, lorsque c'est nécessaire, de déclencher la méthode de la superclasse, de façon explicite. On évite de créer artificiellement des noms de fonctions distincts pour réaliser des opération similaires. 35

39 L'héritage Redéfinition des attributs En toute rigueur, la redéfinition devrait pouvoir s'appliquer sur les attributs. Dans la pratique, aucun langage orienté objet "grand public" n'offre cette capacité. En effet, pour des raisons de performance, l'accès aux attributs est y géré de manière statique. 36

40 L'héritage Downcasting (typage sûr) Lorsqu'on travaille avec des objets dynamiques (pointeurs ou références), il est possible de substituer, à un objet d'une classe, tout objet instance d'une sous classe. Cela se justifie car toutes les instances des sous classe savent, au minimum, répondre aux mêmes messages (inclusion des interfaces). Ce mécanisme, combiné au mécanisme de "lookup" que l'on verra plus tard, est intéressant pour écrire du code réutilisable (exemple d'une interface graphique). 37

41 Le polymorphisme Surdéfinition et polymorphisme Dans une même classe, plusieurs méthodes peuvent porter le même nom. Ceci était impensable dans des langages du type C. Ces méthodes doivent cependant se distinguer par leur signature (nombre et/ou type des paramètres). On dit qu'il y a surdéfinition de méthode. Cette qualité d'un langage de programmation s'appelle le polymorphisme. 38

42 Le polymorphisme Invocation de méthodes L'envoi d'un message provoque le déclenchement d'un mécanisme de recherche (lookup) de la méthode qui va devoir être exécutée. Cette recherche est fonction de la signature de la méthode, c'est à dire du type de l'objet récepteur, du nombre et du type des paramètres. 39

43 Le polymorphisme Invocation de méthodes (suite) Cette recherche peut être réalisée avant l'exécution (à la compilation, pour les langages compilés). On parle alors de recherche statique. Inconvénient : Dans ce cas, la recherche ne se fait pas sur le type réel des objets mais le type déclaré (cas des pointeurs). 40

44 Le polymorphisme Invocation de méthodes (suite) Cette recherche peut être réalisée à l'exécution, généralement dans les langages interprétés. On parle alors de recherche dynamique. Avantage : La recherche peut se faire sur le type réel des objets. Inconvénient : Plus lourd à gérer donc plus lent. Certains langages compilé permettent, dans une certaine mesure, des branchements dynamiques. 41

45 Le polymorphisme Invocation de méthodes (suite) Cette recherche peut être réalisée à l'exécution, généralement dans les langages interprétés. On parle alors de recherche dynamique. Avantage : La recherche peut se faire sur le type réel des objets. Inconvénient : Plus lourd à gérer donc plus lent. Certains langages compilés permettent, dans une certaine mesure, des branchements dynamiques. 42

46 Qu est ce qu UML? Introduction à UML Langage graphique destiné à une utilisation souple pour modéliser des systèmes informatisés Pour la maîtrise d ouvrage Facilite la communication avec la maîtrise d œuvre Permet la précision Pour la maîtrise d oeuvre 43

47 Introduction à UML Ensemble de vues sémantiques (neuf types de diagrammes) Pour l analyse diagramme de classes diagramme d objets diagramme d états transitions diagramme d activité diagramme de collaboration le diagramme de séquence le diagramme d utilisation 44

48 Introduction à UML Pour la conception (vue informatique) diagramme de composants diagramme de déploiement Chaque vue possède un langage graphique de symboles Les diagrammes s appuient aussi sur des éléments structurants paquetage : pour la décomposition stéréotypes : qualité structurante d une classe (ex: acteur pour SI) 45

49 Introduction à UML Diagramme de classes Ils expriment la structure statique d un système Une classe (concept) décrit un ensemble d objets Un objet (concept spécifique) est une instance de classe Une association (Relation) décrit un ensemble de liens Un lien est une instance d une association 46

50 Introduction à UML Diagramme de classes (suite) NomClasse Attributs Operations Description d un attribut droit nom:type = valeurpardéfaut droit : public + / privé / protégé # type : classe de l attribut valeurpardéfaut : optionnelle Personne - Nom : chaine - Prenom : chaine - Age : entier - NumSS : entier + ChangerTravail() + ChangerNom() Description d une opération droit nom(listeparamètres):typeretour droit : public + / privé / protégé # listeparamètres : éléments séparés par des virgules et de la forme : nom:type=valeurpardéfaut typeretour = type de l éventuelle valeur de retour 47

51 Introduction à UML Diagramme de classes (suite) Exemple d'association Mammifère Société 1 * Employeur Employé Personne Est une sorte de Lapin 48

52 Introduction à UML Exemple simple 49

53 Introduction à UML Exemple simple 50

54 Exercice Modéliser en notation UML les classes suivantes ainsi que leurs relations : Forme Carré Cercle CercleColoré 51

55 52

56 Présentation de Java Historique Caractéristiques du langage Environnements de développement Type de développement Les principales plateformes Un langage orienté objet Formation Java L'essentiel de Java et de l'objet Copyright NTSys

57 Historique Evolutions du web Hypertexte simple Serveurs de fichiers basées sur URLs Dynamique Formulaires, CGI Scripts, DHTML, Push Objets JavaBeans / applets, ActiveX, ORB Formation Java L'essentiel de Java et de l'objet 2

58 Historique : projet Oak (Naughton, Gosling, Sheridan (Sun)) Langage de programmation pour systèmes embarqués: TV interactive, etc. But:Plateforme commune. Projet abandonné en : (Sun) Adaptation à l Internet 1995: de Oak à Java 1996: Java (JDK1.0.1) Oak appliqué à WWW. Le projet renaît de ses cendres sous le nom de Java. Combiné avec un navigateur spécial (HotJava), apporte le concept d Applet. 1997: JDK : Java 2 (Java 1.2) : Java 2 à Java Tiger (Java 1.5) Formation Java L'essentiel de Java et de l'objet 3

59 Historique 2006 : Java 6 Publication du code source. Java devient un logiciel libre : Java 7 Licence GPL Formation Java L'essentiel de Java et de l'objet 4

60 Historique Les acteurs majeurs de Java SUN: créateur du langage et promoteur des architecture 3 Tiers IBM : stratégie e Business basée sur Java (Websphere, ECLIPSE/WSAD) BORLAND : JBuilder BEA : Serveur WebLogic La communauté Open Source : Projet Apache / JAKARTA JCP : Java Community Process : Association ouverte pour gérer les spécifications de Java Autres : Oracle (JDeveloper), Symantec (Visual Cafe), Microsoft (J++), Forté, Sybase (Power J) Formation Java L'essentiel de Java et de l'objet 5

61 Caractéristiques de Java O r ie n t é o b j e t In terp rété P o r t a b le S im p le Formation Java L'essentiel de Java et de l'objet Rob u ste S é c u r is é M u lt i t h r e a d D is t r ib u é 6

62 Caractéristiques de Java Java est un langage orienté objet Tout est classe (pas de fonctions) sauf les types de base (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 Les objets se manipulent via des références Une API objet standard est fournie La syntaxe est proche de celle du C Formation Java L'essentiel de Java et de l'objet 7

63 Caractéristiques de Java Java est portable Le compilateur Java génère du bytecode La Java Virtual Machine (JVM) est présente sur Unix, Win32, Mac, et intégrée dans Netscape Navigator, Internet Explorer, etc. Le langage a une sémantique très précise. La taille des types de base est indépendante de la plate forme. Java supporte un code source écrit en Unicode. Java est accompagné d'une librairie standard sur toute les plateformes Formation Java L'essentiel de Java et de l'objet C o m p ila t e u r b ytecod e I n terp ré teu r O S M a t é r ie l 8

64 Caractéristiques de Java Java est sécurisé Sécurisation indispensable pour du code mobile. Sécurisation prise en charge dans l'interpréteur (JVM). Trois couches de sécurité : Le Verifier : chargé de vérifier le byte code. Le Class Loader : responsable du chargement des classes. Le Security Manager : responsable de l accès aux ressources (locales). Code certifié par l utilisation de clés (signatures électroniques). Formation Java L'essentiel de Java et de l'objet 9

65 Caractéristiques de Java Java est robuste A l origine, c'est un langage pour les applications embarquées. Gestion de la mémoire par un garbage collector. Pas d accès direct à la mémoire (comme en C++). Mécanismes d'exception. Accès à une référence null donne lieu à une exception. Compilateur contraignant Tableaux = objets (taille connue, débordement donnant lieu à exception). Seules les conversions sûres sont automatiques. Contrôle du transtypage («cast») à l'exécution. Formation Java L'essentiel de Java et de l'objet 10

66 Caractéristiques de Java Java est multi thread Intégrés au langage et aux API : synchronized garbage collector dans un thread de basse priorité java.lang.thread, java.lang.runnable Implémentation propre à chaque JVM. Difficultés pour la mise au point et le portage. Formation Java L'essentiel de Java et de l'objet 11

67 Caractéristiques de Java Java est distribué API réseau (java.net.socket, java.net.url, etc.). Chargement / génération de code dynamique. Applet. Servlet. Protocole / Content handler. Remote Method Invocation. (RMI) JavaIDL (CORBA). Formation Java L'essentiel de Java et de l'objet 12

68 Environnements de développement Sun JDK 1.1.x, JDK 1.2.x compilateur, interpréteur, appletviewer,... IDE Eclipse, VisualAge for java, Jbuilder, Café, Forte for Java, Visual J++, etc. Navigateurs Netscape Navigator, Internet Explorer Etc : Web/application Serveur, DB,... Formation Java L'essentiel de Java et de l'objet 13

69 Environnements de développement SUN: Java Developpement Kit javac : compilateur de sources java java : interpréteur de byte code appletviewer : interpréteur d'applet javadoc : générateur de documentation (HTML, etc.) javah : générateur de header pour l'appel de méthodes natives javap : désassembleur de byte code jdb : debugger javakey : générateur de clés pour la signature de code Formation Java L'essentiel de Java et de l'objet 14

70 Environnements de développement IBM: Eclipse Formation Java L'essentiel de Java et de l'objet 15

71 Type de développements Formation Java L'essentiel de Java et de l'objet 16

72 Types de développements Java: Applets Application téléchargée sur réseau et exécuté dans un navigateur (poste client) Application exécutée localement Exécution dans un cadre restreint (sécurité) Permet de dynamiser une page Insertion par une balise HTML : <APPLET code= mon_applet.class > <PARAM name= parametre_1 value= 1 > </APPLET> Pré visualition grâce à appletviewer Formation Java L'essentiel de Java et de l'objet 17

73 Types de développements Java: Applet (exemple) import java.awt.*; public class HelloApplet extends java.applet.applet { public void init () { add(new Label("Hello World")); } } <HTML> <BODY> <APPLET code="helloapplet.class" width="100" height="30"> Message pour navigateur ne supportant pas java </APPLET> </BODY> </HTML> commandes: javac HelloApplet.java appletviewer HelloApplet.html Formation Java L'essentiel de Java et de l'objet 18

74 Types de développements Java: Applications Application exécutée localement dans la JVM du poste client Accès aux ressources locales Permet de développer une application exécutable sur toutes les plates formes supportant une JVM Application lente si exécutée par un interpréteur JAVA standard Possibilité d utiliser un compilateur JAVA (en sacrifiant la portabilité) ou un JIT (Just In Time compiler) Formation Java L'essentiel de Java et de l'objet 19

75 Types de développements Java: Application (exemple) public class HelloApp { public static void main (String args[]) { String[] chaines = new String [2]; // tableaux chaines [0] = "Bienvenue à JavaWorld! " ; chaines [1] = "Félicitation " ; int i ; // variable for (i = 0 ; i < chaines.length ; i++) System.out.println( chaines [i] ); } } commandes: javac HelloApp.java et java HelloApp Formation Java L'essentiel de Java et de l'objet 20

76 Types de développements Java: Servlets Alternative Java à la programmation avec CGI Exécution par le serveur Web Avantages: Efficacité : une seule JVM, n threads Portabilité : indépendance vis à vis du serveur Sécurité : inhérente à Java Puissance : communication avec serveur, partage de données entre servlets, etc. Formation Java L'essentiel de Java et de l'objet 21

77 Types de développements Java: JSP (JavaServer Pages) Langage script server (type ASP, PHP) Permet le mélange de code statique HTML avec code dynamique Exemple: <HTML><HEAD><TITLE>titre</TITLE></HEAD> <BODY> Bienvenue, <%= Utils.getUserNameFromCookie(request) %> </BODY> </HTML> Formation Java L'essentiel de Java et de l'objet 22

78 Principales plate formes J2SE (Java 2 Platform, Standard Edition) Formation Java L'essentiel de Java et de l'objet 23

79 Principales plate formes J2SE est composé de : Core Java Java Platform Debugger Architecture (JPDA) Documentation (Javadoc) API (Sécurité, bases de données, ) Desktop Java Java Runtime Environment (JRE) fournit les bibliothèques, la machine virtuelle Java et d autres composants pour exécuter applications et applets. Modèles de composant (JavaBeans) GUI toolkit (JFC/Swing) Insuffisant pour les applications WEB complexes Formation Java L'essentiel de Java et de l'objet 24

80 Principales plate formes J2ME (Java 2 Platform, Micro Edition) Environnement Java optimisé pour le développement d applications sur des terminaux mobiles. C est une restriction de J2SE permettant le mise en œuvre sur téléphones, PDA, Absence du type «float» Sous ensemble de java.util seulement Interface graphique simplifiée N est pas prévu pour le développement d applications WEB Formation Java L'essentiel de Java et de l'objet 25

81 Principales plate formes J2EE (Java 2 Platform, Enterprise Edition) J2EE est un ensemble de standards de développement d applications d entreprise multi tiers. Intègre les spécificités du développement WEB : Servlet, JSP, EJB, W EB T ie r J 2 E E C lie n t Formation Java B u s in e s s T ie r EIS T ie r ( E n t e r p r is e I n f o r m a t io n S y ste m ) J2 E E S e r v e r L'essentiel de Java et de l'objet 26

82 LOO: objets Un Langage Orienté Objets une entité contenant des données et des procédures associées Monde réel Modèlisation Objet voiture 1

83 Un Langage Orienté Objets LOO: classes Les attributs (parfois appelés données membres): il s'agit des données représentant l'état de l'objet Les méthodes (parfois appelées fonctions membres): il s'agit des opérations applicables aux objets Règles : les noms de classes commencent par une majuscule et ceux des attributs et méthodes par une minuscule. Dans les deux cas pas de caractères spéciaux. class Voiture { } // attributs String modele; float poids;... // méthodes demarrer() {...} arreter() {...} 2

84 LOO: messages Un Langage Orienté Objets Pour utiliser un objet on lui envoie des messages Un message déclenche l exécution d une méthode Une méthode peut envoyer des messages à d autres objets 3

85 Un Langage Orienté Objets LOO: Encapsulation Mécanisme consistant à factoriser des données et des méthodes selon une hiérarchie de concepts : Héritage Définir des niveaux de visibilité des éléments de la classe : Contrôle d accès 4

86 LOO: Héritage Un Langage Orienté Objets Permet de créer une nouvelle classe à partir d'une classe existante Moyen de créer une hiérarchie de classes 5

87 Un Langage Orienté Objets LOO: Polymorphisme La possibilité de définir plusieurs méthodes de même nom mais de paramètres différents (en nombre et/ou en type). C'est le mécanisme de surcharge Exemple : int addition(int, int) : pourra retourner la somme de deux entiers float addition(float, float): pourra retourner la somme de deux flottants char addition(char, char) : définit au grés de l'auteur la somme de deux caractères 6 public class TestPolyStat { } public int addition(int x, int y) { return x+y; } public double addition(double x, double y) { return x+y; } public char addition(char x, char y) { return (char)(x+y); } public static void main (String args[]) { TestPolyStat test = new TestPolyStat(); System.out.println("2 + 2 : "+test.addition(2,2)); System.out.println(" : "+test.addition(2.1,7.2)); System.out.println("'a' + 'c' : "+test.addition('a','c')); }

88 Un Langage Orienté Objets LOO: Polymorphisme La possibilité de redéfinir une méthode de même nom et de mêmes paramètres dans une classe dérivée. C'est le mécanisme de redéfinition Exemple : public class Doublet { protected int x,y; public class Triplet extends Doublet { protected int z; } public Doublet(int x, int y) { this.x=x; this.y=y; } public int add() { return x+y; } } public Triplet(int x, int y, int z) { super(x,y); this.z=z; } public int add() { return (super.add() +z); } 7 public class TestPolyDyn { } public static void main(string[] args) { } Doublet d = new Triplet(1,1,1); System.out.println(d.add());

89 Un Langage Orienté Objets Java: Déclaration d une classes ModifieurClasse class NomClasse {... } ModifieurClasse class NomClasse extends NomSuperClasse {...} ModifieurClasse class NomClasse implements NomInterface, NomInterface2,... {...} ModifieurClasse class NomClasse extends NomSuperClasse implements NomInterface, NomInterface2,... {...} Où ModifieurClass est une classe: public, protected ou private final : n a pas de descendance (pas extends) abstract 8

90 Un Langage Orienté Objets Java: Déclaration d une classes classes abstraites public abstract class NomClasse { // liste d instructions... } C est une classe ayant au moins une méthode abstraite. Elle ne peut pas être instanciée (new). Elle peuvent être étendue (mot clé extends ). 9

91 Un Langage Orienté Objets Java: Classes abstraites abstract class Shape { // définition d une classe abstraite public abstract double perimeter(); } class Circle extends Shape {... public double perimeter() { return 2 * Math.PI * r ; } } class Rectangle extends Shape {... public double perimeter() { return 2 * (height + width); } } 10

92 Un Langage Orienté Objets LOO: Héritage multiple Pas d héritage multiple en Java Pour éviter les pièges de l héritage multiple, Java implémente un mécanisme emprunté à Objective C : la notion d interface 11

93 Java: Interfaces Un Langage Orienté Objets Une interface correspond à une classe où toutes les méthodes sont abstraites. Une classe peut implémenter (implements) une ou plusieurs interfaces tout en héritant (extends) d'une classe. interface I1 { void m(); } abstract class C1 { void g(); } class C2 extends C1 implements I1 {...} Une interface peut hériter (extends) de plusieurs interfaces. interface I2 extends I1 {...} 12

94 Un Langage Orienté Objets Java: Interfaces (exemple) abstract class Shape { public abstract double perimeter(); } interface Drawable { public void draw(); } class Circle extends Shape implements Drawable, Serializable { public double perimeter() { return 2 * Math.PI * r ; } public void draw() {...} } class Rectangle extends Shape implements Drawable, Serializable {... public double perimeter() { return 2 * (height + width); } public void draw() {...} } 13

95 Exercice Compiler et exécuter la classe HelloWord Dans l'ide Eclipse En ligne de commande public class HelloWord { public static void main(string[] args) { System.out.println("Hello world!!!"); } } 14

96 15

97 Le langage Java Structures fondamentales Classe Classe abstraite Interface Attribut Méthode Constructeur This et super Contrôle d'accès Package Copyright NTSys

98 Java: Types de données Le langage Java Type Signification Taille Plage de valeurs acceptée char byte Caractère Entier très court 2 1 valeur du jeu de caractères Unicode (65000 caractères possibles) 128 à 127 short Entier court à int Entier à long Entier long à float Flottant 4 1.4*10 45 à 3.4*10 38 double Flottant double 8 4.9* à 1.7* boolean booléen 1 0 ou 1 2

99 Le langage Java Java: Les conversions de type (cast) byte short int long float double char Conversions avec gain de précision Conversions avec perte de précision 3

100 Java: Opérateurs Le langage Java Calcul +,, *, /, = Assignation +=, =, *=, /= x=x+5 x+=5 Incrémentation ++, Comparaison = =, >, >=, <, <=,!= Opérateurs logiques &&,,! les opérateurs bit à bit &,, ^ rotation de bit <<, >>, >>> 4

101 Le langage Java Java: Structures conditionnelles Instruction if if (condition réalisée) { liste d'instructions } Instruction if... else if (condition réalisée) { liste d'instructions } else { autre série d'instructions } Instruction switch switch (Variable) { case Valeur1: instructions break; case Valeur2: instructions break; default: instructions break; } 5 if (x==32) { y= 1/(x 64); } else { y = 1/ (x 32); } //... switch (x) { case 0: listerpieces(); break; case 1: ajouterpieces(); break; default : quitter(); break; }

102 Le langage Java Java: boucles boucle for for (var; condition; inc) { liste d'instructions } boucle while while (condition réalisée) { liste d'instructions } boucle do...while do { liste d'instructions } while (condition réalisée) Arrêt/saut inconditionnel x=1; while (x<=10) { if (x == 7) { printf("division par zéro!"); continue; } if (x == 9) { printf("arrêt!"); break; } a = 1/(x 7); printf("%d", a); x++ } 6 for (int i=0; i<100; i=i+2) { System.out.println(i); } int i=0; while (i<100) { System.out.println(i); i=i+2; } int i=0; do { System.out.println(i); i=i+2; } while (i<100);

103 Le langage Java Java: Déclaration d une classes ModifieurClasse class NomClasse {... } ModifieurClasse class NomClasse extends NomSuperClasse {...} ModifieurClasse class NomClasse implements NomInterface, NomInterface2,... {...} ModifieurClasse class NomClasse extends NomSuperClasse implements NomInterface, NomInterface2,... {...} Où ModifieurClass est une classe: public, protected ou private final : n a pas de descendance (pas extends) abstract 7

104 Java: Déclaration d une classe classes abstraites Le langage Java public abstract class NomClasse { // liste d instructions... } C est une classe ayant au moins une méthode abstraite. Elle ne peut pas être instanciée (new). Elle peut être étendue (mot clé extends ). Elle sert à générer d autres classes exclusivement. 8

105 Java: Classes abstraites Le langage Java class abstract Shape { // définition d une classe abstraite public abstract double perimeter(); } class Circle extends Shape {... public double perimeter() { return 2 * Math.PI * r ; } } class Rectangle extends Shape {... public double perimeter() { return 2 * (height + width); } } 9

106 Java: Interfaces Le langage Java Une interface correspond à une classe où toutes les méthodes sont abstraites. Une classe peut implémenter (implements) une ou plusieurs interfaces tout en héritant (extends) d'une classe. interface I1 { void m(); } abstract class C1 { void g(); } class C2 extends C1 implements I1 {...} Une interface peut hériter (extends) de plusieurs interfaces. interface I2 extends I1 {...} 10

107 Java: Interfaces (exemple) Le langage Java abstract class Shape { public abstract double perimeter(); } interface Drawable { public void draw(); } class Circle extends Shape implements Drawable, Serializable { public double perimeter() { return 2 * Math.PI * r ; } public void draw() {...} } class Rectangle extends Shape implements Drawable, Serializable {... public double perimeter() { return 2 * (height + width); } public void draw() {...} } 11

108 Java: Variables (champs) Le langage Java Déclaration des variables class Classe1 { TypeVariable variable1; TypeVariable variable2, variable3; ModifieurDeVariable TypeVariable variable4;... } où ModifieurDeVariable est : public, protected ou private static : unique exemplaire final : c'est une constante volatile : sur les threads 12

109 Java: Méthodes Déclarations de méthodes class Classe1 { TypeRetour methode (TypeParam paramname,... ) {... } Modifieur TypeRetour methode (TypeParam paramname... ){... } où Modifieur est public, protected ou private static, final, abstract Surcharge de méthodes Le langage Java déclarée plusieurs fois dans une même classe ou ses classes dérivées 13

110 Exercice Ecrire une classe TP1 Membre du package ljo.jour1 Contenant une méthode main Calculant et affichant 1/(x 7) pour x allant de 1 à 9 Ecrire une classe TP2 Membre du package ljo.jour1 Demandant à l'utilisateur de saisir un entier n Calculant la suite U(n)=U(n 1)/ Class TP1 Class TP2 public static void main(string[] args) import java.util.scanner;... //Déclaration et instaciation d'un scanner //sur l'entrée standard (par défaut le clavier) Scanner s = new Scanner(System.in); //Affiche d'une invite à l'utilisateur System.out.print("Valeur de n? "); //On retourne l'entier saisi int saisie=s.nextint();

111 Java: Constructeurs Le langage Java Porte le même nom que la classe N'a pas de type de retour class Classe1 { public Classe1 () {... } // constructeur Modifieur Classe1 (TypeParam1 param1name,... ) {... } Modifieur Classe1 (...) throws TypeThrowable,... {...} } où Modifieur : public, protected ou private La création d'objets new Classe1(); 15

112 Le langage Java Java: Constructeurs (exemple) class Point { private int x, y; Point() { } Point(int xvalue, int yvalue) { x = xvalue; y = yvalue; } public void setx(int xvalue) {x=xvalue;} public void sety(int yvalue) {y=yvalue;} public int getx() {return(x);} public int gety() {return(y);} } class ConstructorTest { public static void main() { Point p1 = new Point(); Point p2 = new Point(10, 20); System.out.println("p1:" + p1); System.out.println("p2:" + p2); } } Résultat de l éxecution: P1: (0,0) P2: (10,20) 16

113 Le langage Java Java: Constructeurs (exemple) class Circle { double x, y, r; } public Circle(double x, double y, double r) { this.x = x; this.y = y; this.r = r; } public Circle(Circle c) { x = c.x; y=c.y; r=c.r; } public Circle() { this(0.0, 0.0, 0.0); } 17

114 Java: this et super this L opérateur «this» permet d accéder à l objet lui même. Les méthodes statiques ne peuvent pas accéder à this. super Le langage Java Une classe peut accéder aux attributs de sa classe mère par l opérateur super. Une classe peut accéder aux méthodes de sa classe mère par l opérateur super. 18

115 Le langage Java Java: this et super (exemple) class A { // classe int x; public A() { x = 3; } } class B extends A { // classe dérivée de A public B( ) { super(); // accède au constructeur de la classe mère }... } 19

116 Java: Contrôle d accès Le langage Java Public : Les fonctions de toutes les classes peuvent accéder aux données ou aux méthodes d'une classe définie avec le niveau de visibilité public. Protected : l'accès aux données est réservé aux fonctions des classes héritiers. Private : l'accès aux données est limité aux méthodes de la classe elle même. 20

117 Le langage Java Java: Contrôle d accès (suite) N i v e a u d a c c è s M o d i f i e u r C l a s s e P a c k a g e S o u s c l a s s e T o u s p u b l i c O u i O u i O u i O u i p r o t e c t e d O u i O u i O u i N o n s a n s m o d i f i e u r O u i O u i N o n N o n p r i v a t e O u i N o n N o n N o n 21

118 Java: Le mot clé static Le langage Java Utilisable pour des variables, méthodes ou blocs de code. Indique que celle ci n'appartient pas à une instance particulière de la classe. Les variables ou méthodes statiques appartiennent à la classe elle même. On peux ainsi les utiliser sans avoir une instance créée. Par exemple : Math.PI On peut aussi manipuler une variable ou méthode statique à partir d'une instance de la classe. Les méthodes statiques, étant indépendantes de toute instance, n'ont pas accès aux variables ou méthodes non statiques. 22 Public class MaClasse { public static int mavariable; public static int mafonction (int param) { return param + mavariable; } }

119 Java: Les classes utilitaires Une classe utilitaire regroupe des constantes et/ou des méthodes le plus souvent statiques Exemple : la class java.lang.math Cette classe rassemble l'ensemble des méthodes de calcul mathématique. Champs public final static double E public final static double PI Méthodes public static double sin (double a) public static double cos (double a) public static double tan (double a)... Le langage Java 23 public class DateUtil { public static String format(date date, String pattern) { SimpleDateFormat dateformat = new SimpleDateFormat(pattern); String result = dateformat.format(date)); return result; } } public static Date ajout(date d1, Date d2) { long time1 = d1.gettime(); long time2 = d2.gettime(); Date datesomme = new Date(time1 + time2); return datesomme; }

120 Java: Packages Le langage Java Les packages structurent l'ensemble des classes et interfaces Ex: package java.lang Utilisation des classes import nomclasse; // importer une classe sans package import nompackage.nomdeclasse; // importer une classe import nompackage.*; // importer toutes les classes d'un package Définir un package package nomdupackage; // doit toujours être la première ligne 24

121 Exercice Implémenter : ljo.jour2.objets Forme nom : String x, y : float + Forme(nom : string, x : float, y : float) + Forme(x : float, y : float) + getnom() : String + affiche() a : float Carre + Carre( nom : string, x : float, y:float, a:float) + Carre(x : float, y:float, a:float) + Carre(c : Carre) r : float Cercle + Cercle(nom : string, x : float, y:float, r:float) + Cercle(x : float, y:float, r:float) + Cercle(c : Cercle) CCercle couleur : string + Cercle(nom:string, x : float,y:float, r:float, couleur:string) + Cercle(x : float, y : float, r : float, couleur:string) + CCercle(c : CCercle) 25

122 Les nouveauté de Java 1.5 Nouvelles instruction de boucle Type énumérés Autoboxing Méthode à nombre d'arguments variable Imports statique Types génériques Copyright NTSys

123 Java Tiger Nouvelle boucle for Java 1.4 List stringlist = new ArrayList(); for(int i=0; i<stringlist.size();i++) { String current = (String)stringList.get(0); //Traitement } Java 1.5 List stringlist = new ArrayList(); for(string current: stringlist) { //Traitement } 27

124 Java Tiger Les types énumérés //Déclaration public enum MesCouleurs { rouge, ambre, vert }; //Utilisation MesCouleurs c = MesCouleur.vert; 28

125 Java Tiger Autoboxing des types primitifs: Integer myintegerobj = new Integer(12); int myint = myintegerobj; myintegerobj = 18; List list = new ArrayList(); int myint = 100; list.add(myint); // provoque une erreur en 1.4 // list.add(new Integer(myInt)) 29

126 Java Tiger Les méthodes à nombre d'argument variable: //Définition void argtest(object... args) { for (int i = 0; i < args.length; i++) { System.out.println(args[i]); } } //Appel argtest("test", "data"); 30

127 Java Tiger Les imports statiques: Java 1.4 import java.awt.borderlayout;... getcontentpane().add(new JPanel(), BorderLayout.CENTER); Java 1.5 import static java.awt.borderlayout.*;... getcontentpane().add(new JPanel(), CENTER); 31

128 Java Tiger Généricité Java 1.4 ArrayList list = new ArrayList(); list.add(0, new Integer(42)); int total = ((Integer) list.get(0)).intvalue(); Java 1.5 ArrayList<Integer> list = new ArrayList<Integer>(); list.add(0, new Integer(42)); int total = list.get(0).intvalue(); 32

129 33

130 Les Applets Principe Sécurité Cycle de développement Insertion dans html Code source Cycle de vie Archive Multimédia Copyright NTSys

131 Les Applets Java: Applets Une applet Java dans un navigateur Téléchargée, dans un navigateur Dynamise une page Inserée dans code HTML N exploite qu au mieux Java 1.1 (n exploite pas swing par ex.) Possibilité d utiliser une JVM externe par un plug in 2

132 Applets: Sécurité Les Applets Les applets sont téléchargées et executées localement Possibilités d execution restreintes (sand box) ne peut jamais executer un programme local ne peut communiquer avec un autre hôte que le serveur d origine ne peut lire ni écrire sur le disque local ne peut (presque pas) obtenir d informations sur l ordinateur local les fenêtres ouvertes affichent un message d avertissement Les applets peuvent être certifiées (signature) pour obtenir des droits supplémentaires 3

133 Les Applets Applets: Cycle de développement 4

134 Les Applets Applets: Insertion d une applet <HTML> <HEAD><TITLE>Parametre Test</TITLE></HEAD> <BODY> <APPLET CODE="ParametreTest.class" WIDTH=150 HEIGHT=100> <PARAM NAME=Ch0 VALUE="Bienvenue!"> <PARAM NAME=Ch1 VALUE="Java World"> <PARAM NAME=Ch2 VALUE="Bon courage! "> Can't load the applet </APPLET> </BODY> </HTML> 5

135 Les Applets Applets: Examen du code source import java.awt.*; import java.applet.applet; public class ParametreTest extends Applet { public void init() { int n=0; String param; } while((param=getparameter("ch"+n))!= null) { add(new Label(param)); n++; } } 6

136 Les Applets Applets: Cycle de vie d une applet init() : rassemble les initialisations nécessaires à l applet. Comparable à un constructeur. Appelé par Java lorsque l applet est lancé la première fois. Traitement des paramètres. start() : méthode appelée après la méthode init(). Appelée de nouveau à chaque fois que l utilisateur revient sur la page contenant l applet. Utiliser par exemple pour lancer des threads. stop() : méthode appelée lorsque l utilisateur quitte la page où se situe l applet. Utilisée pour arrêter les activites gourmandes en CPU. destroy() : Appelée lorsque le navigateur s arrête normalement. Utilisé pour libérer certaines ressources (contextes graphiques par ex.) 7

137 Les Applets Applets: Les archives (jar) <Applet CODE= toto.class ARCHIVE= toto.jar > Une seule requête HTTP pour charger plusieurs fichiers contenus dans l archive. Peut contenir des classes Java, des images, sons, fichiers texte, données binaires. Compression des données Création : jar cf nom.jar Fichier1 Fichier2... 8

138 Applets: Multimédia Les Applets Applets supportent images au format PNG, GIF ou JPEG et les fichiers audio au format AU, AIFF, WAV et MIDI. Récupération des fichiers : Image cat = getimage(getdocumentbase(), images/cat.png ); AudioClip miaou = getaudioclip(getdocumentbase(), audio/meow.au ); Récupération dans une archive Jar: AudioClip miaou = getaudioclip(getcodebase(), audio/meow.au ); 9

139 Les Applets Applets: Multimédia (exemple) import java.net.url; import java.awt.*; import java.applet.*; public class ImageSoundTest extends Applet { Image image; AudioClip audioclip; } public void init() { image = getimage(getdocumentbase(), "T2.gif"); audioclip = getaudioclip(getcodebase(), "sound/spacemusic.au"); } public void start() { if(audioclip!= null) audioclip.loop(); } public void stop() { if(audioclip!= null) audioclip.stop(); } public void paint(graphics g) { g.drawimage(image, 0, 0, this); } 10

140 Exercice Création d'une applet multimédia Prend en paramètre le nom d'un fichier image et d'un fichier son. Charge l'image et le son à l'initialisation Joue le son au démarrage, le stop à l'arret Dessine l'image à chaque rafraichissement 11

141 Exercice Revenir aux objets et implémenter un catalogue Un catalogue contient un ensemble de pièces une pièce simple est un composant ayant un nom et un prix unitaire une pièce composite a un nom, une liste de pièces (ses composantes) et un cout d'assemblage Il faut pouvoir lister les pièces, ajouter une pièce simple, ajouter une pièce composite et supprimer une pièce sans rompre la consistance du modèle Documenter le résulat à l'aide de Javadoc 12

142 13

143 Interfaces IHM Le modèle AWT Introduction SWING Copyright NTSys

144 Java: IHM Interface Homme Machine Il existe deux toolkits permettant de créer et gérer les interfaces utilisateur : AWT et SWING AWT : Abstract Window Toolkit Premier toolkit introduit dans Java 1.0. Offre un ensemble de classes permettant le gestion d une GUI. SWING : Tout ça n est rien si je n ai pas le swing Duke Ellington. Toolkit introduit dans Java 1.1. Ne remplace pas complètement AWT. Propose un ensemble d éléments d interface (widgets) plus étendu et plus pratique. N est supporté par aucun navigateur (nécessite un plugin et le téléchargement java 2 (lourd!!) sur chaque poste client). 2

145 Interface Homme Machine Java: Le modèle AWT Modèle control / container Modèle événements ActionListener / event.actionevent ItemListener / event.itemevent TextListener / event.textevent etc. 3

146 Interface Homme Machine Java: AWT les composants (widgets) import java.awt.* 4

147 Java: AWT Composant Création : Button MyButton = new Button( Button ); add(mybutton); Utilisation: Interface Homme Machine MyBHClass mybuttonhandler = new MyBHClass(); class MyBHClass implements java.awt.event.actionlistener { public void actionperformed(actionevent e) { String s = e.paramstring(); // etc. } } public void init() { add(mybutton); MyButton.addActionListener(myButtonHandler); } 5

148 Interface Homme Machine Java: AWT Composant Le composant Canvas : zone de dessin Utilisation: public class canv extends Applet { mycanvas canvas = new mycanvas(); public void init() { canvas.setsize(200,50); add(canvas); } } class mycanvas extends Canvas { public void paint(graphics g) { g.drawstring( Canvas AWT,10,10); g.drawline(10,35,165,35); } } 6

149 Interface Homme Machine Java: AWT Composant public class check extends Applet { Checkbox c = new Checkbox(); public void init() { c.additemlistener( new ItemListener() { public void itemstatechange(java.awt.event.itenevent e) { System.out.println(e.paramString() ); }}); add(c); } } public class check2 extends Applet { CheckboxGroup cbg = new CheckboxGroup(); Checkbox c1 = new Checkbox( small,false,cbg); Checkbox c2 = new Checkbox( large,true,cbg); ItemListener ie = new ItemListener() { }; public void init() { c1.additemlistener(ie); add(c1); c2.additemlistener(ie); add(c2); } } 7

150 Interface Homme Machine Java: AWT Composants Label : Label MyLabel = new Label( Label ); add(mylabel); TextField TextField tf = new TextField( TextField,12); add(tf); tf.addtextlistener(new TextListener() { public void textvaluechanged(java.awt.avent.textevent e) { System.out.println( contenu:,e.gettext()); }}); TextArea: TextArea ta = new TextArea( TextArea,12,10); add(ta); 8

151 Interface Homme Machine Java: AWT Composants Choice : Choice choix = new Choice(); add(choix); choix.additem( Orange ); choix.additem( Lime ); ItemListener il = new ItemListener () { public void itemstatechanged(java.awt.avent.itemevent e) { System.out.println( choix:,e.getitem()); }}); List : List l = new List(3,false); add(l); l.additem( Carrot ); l.additem( Parsnip ); // etc. ItemListener il... // etc. 9

152 Interface Homme Machine Java: AWT Les containers java.awt.container Les containers sont des classes permettant de regrouper des composants. Ils possèdes des champs et des méthodes permettant de gérer: Un layout manager pour disposer les composants Ajouter, supprimer de nouveaux composants (ex: add() ) Possède une méthode paint() etc. 10

153 Interface Homme Machine Java: AWT Les containers Les type de containers : ScrollPane : Container avec ascenseurs horizontaux et verticaux. Image i = getimage(getdocumentbase(), chien.jpg ); mycanvas = new MyCanvas(i); ScrollPane sp = new ScrollPane(); sp.setsize(120,100); sp.add(mc); add(sp); class MyCanvas extends Canvas { Image si; public MyCanvas(Image i) { this.setsize(200,200); si = i; } public void paint(graphics g) { g.drawimage(si,0,0,this);} } 11

154 Interface Homme Machine Java: AWT Les containers (suite) Les type de containers : Window : Fenêtre totalement blanche, sans bordure. Window w = new Window(); Frame : Fenêtre avec bordure et titre. Frame f = new Frame( Titre de la fenêtre ); f.setbounds(100,50,300,100); // position et taille f.show(); // affiche la fenêtre Panel : Container générique. Toujours contenu dans un container (par exemple une applet). Panel p = new Panel(); Applet : une applet est également un container 12

155 Interface Homme Machine Java: AWT Les containers (fin) Les type de containers : Dialog : Fenêtre avec titre et bordure, dépourvu de menu. Permet l affichage de messages simples. FileDialog : Container auquel on ne peut rien ajouter! Permet la selection d un fichier sur le disque local. 13

156 Interface Homme Machine Java: AWT Layout Manager Chaque container possède un Layout Manager. Ce Layout Manager permet de positionner les composants du container selon diffèrentes manières. On accède au Layout Manager par la methode setlayout( new MyLayout() ); FlowLayout : Les composants sont ajoutés les uns à la suite des autres, de gauche à droite. L ensemble est centré par défaut. avec setlayout( new FlowLayout(int align, int hgap, int vgap) ); align = {FlowLayout.CENTER, FlowLayout.RIGHT ou FlowLayout.LEFT} hgap et vgap définissent l espace entre 2 composants. 14

157 Interface Homme Machine Java: AWT Layout Manager GridLayout : Les composants sont ajoutés les uns à la suite des autres dans une grille de taille (nx x ny ) setlayout( new GridLayout(int nx, int ny) ); 15

158 Interface Homme Machine Java: AWT Layout Manager BorderLayout : Contient 5 composants (ou containers) répartis sur les 4 cotés et au milieux, remplissant tous l espace du container. setlayout( new BorderLayout() ); Button b1 = new Button( ); Button b2 = new Button( ); Button b3 = new Button( Button ); Button b4 = new Button( Button ); Button b5 = new Button( Button ); setlayout(new BorderLayout()); add(borderlayout.north,b1); add(borderlayout.south,b2);... 16

159 Interface Homme Machine MVC : Séparation des responsabilités Model: Données d'un composant View: Présentation des données (sous forme de texte, d'arbre...) Controller: Traitement des actions utilisateur Swing Le modèle Look and feel : Adaptation de la présentation des composants Metal: Par défaut Système : Disponible selon la plateforme (XP, Mac OS X...) Autres : looks, alloy,... (open source ou propriétaire) Container : Lien avec AWT Tous les composants Swing sont des conteneurs (héritage de base java.awt.container) 17

160 Exercice Création d'une applet avec composants graphiques 2 boutons (Jbutton), 2 cases à cocher (Checkbox), 1 zone de texte (JtextArea) Gérer les cases à cocher dans un groupe et leur associer un FocusListener et un ItemListener Associer aux boutons un ActionListener Associer à la zone de texte un KeyListener 18 class MonActionListener implements ActionListener { public void actionperformed(actionevent e) { if (e.getactioncommand() == b1) System.out.println("Click 1"); else System.out.println("Click 2"); } } }

161 Exercice Création d'une application graphique simple Calculatrice deux opérations Container : JFrame 2 zones de texte (JTextField) 3 boutons (JButton) 2 labels (Jlabel) Un ActionListener pour gérer les boutons + et Un actionlistener pour gérer le bouton quitter 19 JPanel panel_haut = new JPanel(); JPanel panel_milieu = new JPanel(); JPanel panel_bas = new Jpanel();... setlayout(new BorderLayout()); add(borderlayout.north, panel_haut); add(borderlayout.center, panel_milieu); add(borderlayout.south, panel_bas);... panel_milieu.setlayout(new FlowLayout(FlowLayout.CENTER, 10, 10)); panel_milieu.add(etiquette_resultat); panel_milieu.add(resultat);

162 20

163 Gestion des Exceptions Objectifs Principes Gestion Copyright NTSys

164 Gestion des exceptions Objectifs de la gestion des exceptions Quand un programme ne peut poursuivre son exécution normale Division par zéro, Erreur d'entrée/sortie,... L'exécution standard doit donner place à une «continuation exceptionnelle» 2

165 Gestion des exceptions Principes de le Gestion d'exception Séparation claire entre : code standard traitement des erreurs Différenciation : Syntaxique : blocs de code séparés Dynamique : deux flots d'exécution distincts 3

166 Gestion des exceptions Principes de le Gestion d'exception (suite) Quand le programme ne peut se poursuivre normalement : Interruption du flot d'exécution standard, Déclenchement du mécanisme de continuation exceptionnelle : recherche d'un «gestionnaire d'exception» approprié en remontant dans la pile d'exécution Reprise de l'exécution standard après rétablissement d'un état cohérent 4

167 Gestion des exceptions Java: Gestion des exceptions 5 Unchecked (Runtime) exceptions: Une méthode n'a pas besoin de déclarer une exception 'unchecked'. L'appelant d'une méthode qui lance une exception 'unchecked' n'est pas obligé de traiter l'exception. Les exceptions "unchecked" héritent de la classe RuntimeException ou Error Checked exceptions: Une méthode doit déclarer chaque exception 'checked' qu'elle lance. L'appelant d'une méthode qui lance une exception 'checked' doit soit traiter l'exception, soit la lancer lui même. Les exception 'checked' héritent de la classe Exception.

168 Gestion des exceptions Java: Gestion des exceptions Erreur de programmation : gestion par Compilateur, JVM Erreur pendant l exécution du programme : gestion par exceptions : try...catch...[finally] try {... } catch (TypeException e) {...} } catch (Exception e) {...}... } finally {...} 6 try { Integer i = null; i.tostring(); } catch (NullPointerException ne) { System.err.println("Un pointeur est null"); }

169 Gestion des exceptions Algorithme de selection du catch() try {... //lancement d'une exception... } catch (IOException e) {... } catch (ArithmeticException e) {... } catch (NullPointerException e) {... } catch (Exception e) {... } finally {... } Seul le premier bloc catch correspondant à l'exception l'intercepte. L'exécution du programme reprend après tous les bloc catch 7

170 Gestion des exceptions Propagation d'exception Exception est levée OUI Dans un bloc try? NON NON Arret de l'exécution Propagation à l'appelant Recherche syntaxique du premier bloc catch correspondant Bloc catch correspondant? OUI NON Bloc finally? OUI Execution du bloc finally Execution du bloc catch Bloc finally? OUI NON Reprise de l'exécution standard après les blocs try...catch...finally utilisés Execution du bloc finally 8 public static void launchexception() { throw new Error("Error"); } public static void methodexceptionunchecked() { try { System.out.println("Debut Try"); launchexception(); System.out.println("Fin Try"); } catch (Exception ioe) { System.out.println("Interception Exception"); } finally { System.out.println("Debut finally"); System.out.println("Fin finally"); } } public static void main(string[] args) { try { methodexceptionunchecked(); } catch (Error e) { System.out.println("catch"); } } // Sortie du programme : Debut Try Debut finally Fin finally catch

171 Gestion des exceptions Java: Gestion des exceptions Créer des méthodes exception : throws NomMethode throws ExceptionType 1,, ExceptionType n { // liste d instructions } Exemple: public void method() throws IOException { // liste d instructions } 9

172 Java: Gestion des exceptions Lancer une exception : throw Exemple: Gestion des exceptions public void method() throws IOException { // liste d instructions throw new IOException("Erreur lors de la lecture"); } 10

173 Exercice Gestion des Exceptions pour la calculatrice simple Interception de NumberFormatException. Affichage d'un message d'erreur. Création d'exception Definition d'une classe NisTooBigException Création d'un programme de calcul de suite avec gestion de NumberFormatException et de NisTooBigException 11 JPanel panel_haut = new JPanel(); JPanel panel_milieu = new JPanel(); JPanel panel_bas = new Jpanel();... setlayout(new BorderLayout()); add(borderlayout.north, panel_haut); add(borderlayout.center, panel_milieu); add(borderlayout.south, panel_bas);... panel_milieu.setlayout(new FlowLayout(FlowLayout.CENTER, 10, 10)); panel_milieu.add(etiquette_resultat); panel_milieu.add(resultat);

174 12

175 Le package java.io 4 classes abstraites Les flux d'octets Les flux de caractères Les fichiers Les tampons Sérialisation Entrées Sorties Copyright NTSys

176 Java: Le package IO Entrées sorties import java.io.* Le package «IO» regroupe l ensemble des classes permettant de manipuler les entrées sorties. Il regroupe en particulier : Java.io.InputStream Java.io.OutputStream Java.io.FileInputStream Java.io.FileOutputStream Java.io.BufferdInputStream Java.io.BufferedOutputStream Java.io.DataInput Java.io.DataOutput Java.io.RandomAccessFile Java.io.PrintWriter Java.io.StringBuffer Java.io.File 2

177 Entrées sorties Java: Restrictions pour Applets Les applets sont téléchargées et exécutées sur le poste client. Les applets ont donc des droits restreints par rapports aux applications native Java Les applets sont exécutées dans un environnement particulier (sandbox) qui limite leurs capacités de gestion des entrées sorties : Apple t Apple t v ie w e r Jav a Lire les fichiers locaux non oui oui Ecrire dans les fichiers locaux non oui oui Supprim er un fichier non non oui Obtenir des inform ations sur un fichier non oui oui 3

178 Entrées sorties Java: 4 classes abstraites Java possède un nombre de type de flux important (environ 60!!), qui sont séparés en fonction de leur usage en quatre classes abstraites : Reader : sous classes FileReader, CharArrayReader, BufferedReader, InputStreamReader, FilterReader, etc. Writer : sous classes FileWrite, CharArrayWriter, BufferedWriter, InputStreamWriter, FilterWriter, etc. InputStream : sous classes PipedInputStream, FileInputStream, ZipInputStream, JarInputStream, etc. Flux de caractères Flux d'octets OuputStream: sous classes PipedOutputStream, FileOuputStream, ZipOutputStream, JarOutputStream, etc. 4

179 Java: Les flux d'octets Entrées sorties Les entrées sortie standards sont des flots d'octets. Ils sont accessibles comme des membres statiques (in, out et err) de la classe java.lang.system. InputStream stdin = System.in; OutputStream stdout = System.out; Les méthodes d'inputstream int read() int read(byte[] b) int read(byte[] b,int offset, int len) Les méthodes d'outputstream void write(int b) void write(byte[] b) void write(byte[] b, int offset, int len) 5 InputStream int read() : retourne l'octect suivant du flux, ou 1 si le flux est terminé int read(byte[] b) : remplit le tableau b avec les octets suivants du flux. Retourne 1 si le flux est terminé int read(byte[] b,int offset,int len): remplit le tableau b a partir la case offset avec au plus len octets du flux. Retourne 1 si le flux est terminé AudioInputStream, ByteArrayInputStream, FileInputStream, ObjectInputStream, StringBufferInputStream,... OutputStream void write(int b) : écrit un octet à la suite du flux. void write(byte[] b) : ecrit les octets du tableau b à la suite du flux. void write(byte[] b, int offset, int len) : écrit les octets du tableau b à partir de la case offset à la suite du flux. ByteArrayOutputStream, FileOutputStream,ObjectOutputStream,...

180 Entrées sorties Java: Les flux de caractères Les flux de caractères héritent des classes abstraites Reader et Writer. Les méthodes sont équivalentes aux flux d'octets mais le type de donnée change. Par exemple, la méthode read() retourne deux octets. 6 Reader Writer BufferedReader, CharArrayReader, FilterReader, InputStreamReader, PipedReader, StringReader,... BufferedWriter, CharArrayWriter, FilterWriter, OutputStreamWriter, PipedWriter, PrintWriter, StringWriter,...

181 Entrées sorties Java: Les fichiers La classe File encapsule les informations relatives au système de fichiers. Les classes FileReader, FileWriter, FileInputStream, FileOutputStream permettent de créer des flots associés à des fichiers. FileReader et FileWriter utilisent le codage de la plate forme pour écrire les caractères dans le fichier. Constructeur prend en argument le nom du fichier ou un objet File encapsulant la référence du fichier. FileInputStream fistream = new FileInputStream(new File("toto")); FileOutputStream fostream = new FileOutputStream("toto",true); 7 import java.io.*; public class ListDir { public static void main(string[] args) throws Exception { for (int i = 0; i < args.length; i++) { listdirectory(args[i]); } } public static void listdirectory(string dirname) throws FileNotFoundException { File f = new File(dirName); if (!f.exists()!f.isdirectory()) { throw new FileNotFoundException(); } String[] ls = f.list(); for (int i = 0; i < ls.length; i++) { StringBuffer s = new StringBuffer(20); File file = new File(ls[i]); s.append(file.isdirectory()? "d" : " "); s.append(file.canread()? "r" : " "); s.append(file.canwrite()? "w\t" : " \t"); s.append(file.length()); s.append("\t"); s.append(file.getname()); System.out.println(s); } } }

182 Java: Exemple Entrées sorties import java.io.* File f = new File("fichier.dat"); FileInputStream fis = new FileInputStream(f); // InputStream BufferedInputStream bis = new BufferInputStream(fis); DataInputStream dis = new DataInputStream(fis); FileWriter out = new FileWriter("fichier.dat"); // Writer FileReader in = new FileReader("file.dat"); // Reader byte b = fis.read(); // Lecture d un octet int a = dis.readint(); // Lecture tamponnée d un entier short s = dis.readshort(); out.write( ); // Ecriture 8

183 Entrées sorties Java: les tampons Pour de meilleurs performances des entrées sorties il est recommandé d'utiliser des flux avec tampons. BufferedInputStream, BufferedOutputStream Un tampon permet également le marquage et le retour arrière BufferedInputStream bu = new BufferedInputStream(System.in,256); bu.mark(10); bu.read(); bu.reset(); 9

184 Entrées sorties Java: Sérialisation Le mécanisme de sérialisation permet d'enregistrer et de récupérer des objets dans un flux persistance des objets envoi d'objets sur le réseau. Les objets à enregister doivent implémenter l'interface java.io.serializable Vector vector = new Vector(); // Objet à enregistrer vector.add(new Integer(15)); File f = File.createTempFile("tempFile","test"); ObjectOutputStream out =new ObjectOutputStream(new FileOutputStream(f)); out.writeobject(vector); // Écriture de l'objet out.close(); 10 Vector vector; File f = new File("tempFile","test"); ObjectInputStream in = new ObjectInputStream(new FileInputStream(f)); vector = (Vector)in.readObject(); in.close();

185 Exercice Entrées sorties de chaîne de caractères Ecriture et lecture d'une chaîne de caractère dans un fichier. Lecture dans l'entrée standard Affichage et écriture dans un fichier. Sérialization d'objet dans un fichier Définition d'un Annuaire de Personne et sauvegarde / restauration dans un fichier. 11

186 12

187 JDBC Java Database Connectivity Copyright NTSys Objectifs du chapître : Présenter l'approche objet et ses principaux domaines d'application Introduire les concepts Fixer la terminologie employée

188 JDBC Introduction JDBC 1.0 (1996) : Introduction par SUN de JDBC (Java DataBase Connectivity). Permettre de se connecter à distance sur une base de données et effectuer des requêtes SQL. Caractère universel: Toute application Java + JDBC écrit sur une plateforme avec un DB peut s exécuter sur un autre système avec une autre DB. JDBC 2.0 (1998) : JDBC2 intégré à Java 1.2. Non encore supporté partout et pilotes JDBC2 en cours de développement. JDBC 3.0 (2002) : Optimisation. Masquage d'aspects propriétaires. 2

189 JDBC JDBC: le modèle JDBC JDBC est une API Java pour les accès SQL. Utilisation d un gestionnaire de pilotes (indépendance de la base de données) Les concepteurs de bases de données fournissent les pilotes. JDBC reprend le modèle ODBC de Microsoft qui fournit une interface C pour les accès base de données. Les programmes compatibles avec l API communiquent avec le gestionnaire de pilotes, qui se sert des pilotes pour communiquer avec les bases. Liste des pilotes : 3

190 JDBC JDBC: les type de pilotes Le pilote type 1 (JDBC ODBC bridge) : Utilise le pilote ODBC pour se connecter a la base de données. Le pilote convertit les appels de methods JDBC en appels de fonctions ODBC function calls. Le pilote type 2 (Native API driver) : Utilise les librairies de la base de données côté client. Le pilote convertit les appels de méthodes JDBC en appels natifs à l'api de la base de données. 4

191 JDBC JDBC: les type de pilotes (suite) Le pilote type 3 (network protocol driver) : Convertit les appels de méthodes JDBC en un protocole indépendant de la base de données. Le pilote type 4 (native protocol driver) : Convertit les appels de méthodes JDBC directement en le protocole de base de données spécifique. 5

192 JDBC JDBC: Gestionnaire de pilotes Tous les pilotes supportent au moins la version ANSI SQL 92 6

193 JDBC JDBC: Applications typiques Application client serveur Application n tiers 7

194 JDBC JDBC: Rappels sur SQL JDBC est une interface vers SQL SQL est une interface vers les bases de données relationnelles Norme ANSI SQL 92 SELECT champ1 (, champ2,, champn) FROM table1 (, table2,, tablen) (WHERE conditions) UPDATE tablen SET champn = valeur (WHERE conditions) 8

195 JDBC JDBC: Rappels sur SQL INSERT tablen VALUES ( valeur1, valeur2,, valeurn ) CREATE TABLE tablen ( champ1 type1, champ2 type2,, champn typen ) DROP TABLE tablen 9

196 JDBC JDBC: Type de données SQL T ype de donné es De scription I NTEGER ou I NT entier 32 bits SMALLI NT entier 16 bits NUMERI C( m,n), DECI MAL( m,n) nombre décimal à virgule fixe avec m chiffres ou DEC( m,n) dont n chiffres après la virgule FLOAT( n) nombre à virgule flottante de n bits de précision REAL nombre à virgule flottante de 32 bits DOUBLE nombre à virgule flottante de 64 bits CH ARACTER( n) ou CAR( n) chaîne de caractères statique de n caractères VARCH AR( n) chaîne de caractères de longueur variable (max n) BOOLEAN type booléen DATE date, dépend de l'implémentation du calendrier TI ME heure, dépend de l'implémentation TI MESTAMP date et heure, dépend de l'implémentation BLOB objet binaire de grande taille 10

197 JDBC JDBC: Types SQL et types Java T ype de donné e s SQL I NTEGER ou I NT SMALLI NT NUMERI C( m,n), DECI MAL( m,n) FLOAT( n) REAL DOUBLE CH ARACTER( n) ou CAR( n) VARCH AR( n) BOOLEAN DATE TI ME TI MESTAMP BLOB T ype de donné e s Ja va Int Short java.sql.numeric Double Float Double String String Boolean java.sql.date Java.sql.Time Java.sql.Timestamp Java.sql.Blob 11

198 JDBC JDBC: Programmation JDBC java.sql.* 12

PRESENTATION DE JAVA. Qu est-ce que java? Les caractéristiques du langage java Les outils Les API Références. Software Associates International

PRESENTATION DE JAVA. Qu est-ce que java? Les caractéristiques du langage java Les outils Les API Références. Software Associates International PRESENTATION DE JAVA Qu est-ce que java? Les caractéristiques du langage java Les outils Les API Références 1 Qu est-ce que java? Un langage de programmation orienté objets Une architecture de Virtual

Plus en détail

Introduction à JAVA. Philippe Roose (IUT Bayonne) Olivier Dedieu (INRIA)

Introduction à JAVA. Philippe Roose (IUT Bayonne) Olivier Dedieu (INRIA) Introduction à JAVA Philippe Roose (IUT Bayonne) Olivier Dedieu (INRIA) Mais JAVA c est quoi? Langage OO Exécuté dans une Machine Virtuelle Possède un ensemble complet d API (réseau, graphique, sécurité,

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

Cours1 +Cours 2. Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1

Cours1 +Cours 2. Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Cours1 +Cours 2 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction

Plus en détail

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Structure d un programme et Compilation Notions de classe et d objet Syntaxe Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types

Plus en détail

Introduction au langage Java

Introduction au langage Java Introduction au langage Java Nicolas Dumoulin nicolas.dumoulin@cemagref.fr Cemagref Laboratoire d ingénierie pour les systèmes complexes 2010 Notes aux lecteurs Ce document est un support de cours qui

Plus en détail

Cours intensif Java. 3er cours: introduction aux Applets. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.

Cours intensif Java. 3er cours: introduction aux Applets. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu. . Cours intensif Java 3er cours: introduction aux Applets Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr JAVA ET L INTERNET Applet: programmes écrits en java et intégrés dans

Plus en détail

JAVA PROGRAMMATION. Programme. 1. Java, HTML et World Wide Web

JAVA PROGRAMMATION. Programme. 1. Java, HTML et World Wide Web PROGRAMMATION PUBLIC Professionnels informatiques qui souhaitent développer des applications et «applets» Java DUREE 4 jours 28 heures OBJECTIF Créer divers «applets» à intégrer dans un site Web dynamique,

Plus en détail

1.Programmation en Java : notions de base, orienté objet et héritage

1.Programmation en Java : notions de base, orienté objet et héritage Travaux pratique de Méthodologie et Langage de Programmation,, TP1 1 1.Programmation en Java : notions de base, orienté objet et héritage Cette séance de TP a pour objectif d'introduire à la programmation

Plus en détail

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr Initiation à JAVA et à la programmation objet raphael.bolze@ens-lyon.fr O b j e c t i f s Découvrir un langage de programmation objet. Découvrir l'environnement java Découvrir les concepts de la programmation

Plus en détail

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique Institut Supérieure Aux Etudes Technologiques De Nabeul Département Informatique Support de Programmation Java Préparé par Mlle Imene Sghaier 2006-2007 Chapitre 1 Introduction au langage de programmation

Plus en détail

Support de Cours Christophe Dony Université Montpellier-II

Support de Cours Christophe Dony Université Montpellier-II Cours de base d Ingéniérie des applications objet. Généralités sur le langage Java - Modèle d exécution - Syntaxe Support de Cours Christophe Dony Université Montpellier-II 1 Le langage Java 1.1 Langage

Plus en détail

as Architecture des Systèmes d Information

as Architecture des Systèmes d Information Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes

Plus en détail

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Structure d un programme et Compilation Notions de classe et d objet Syntaxe Cours1 +Cours 2 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les

Plus en détail

Généralités sur le Langage Java et éléments syntaxiques.

Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...

Plus en détail

Cours de Java Cours III : Les Interfaces Graphiques. Benjamin FAUCHER Cubis-Helios Consulting

Cours de Java Cours III : Les Interfaces Graphiques. Benjamin FAUCHER Cubis-Helios Consulting Cours de Java Cours III : Les Benjamin FAUCHER Cubis-Helios Consulting Cours III : Les Interfaces Graphiques I. Introduction II. AWT : Frame et Panel III. AWT : Composants graphiques IV. Evènements V.

Plus en détail

Cours de Java. Benjamin FAUCHER Cubis-Helios Consulting

Cours de Java. Benjamin FAUCHER Cubis-Helios Consulting Cours de Java Benjamin FAUCHER Cubis-Helios Consulting Cours 1 : Les bases du Langage Java 1/2 I. Introduction II. Compilation III. Rappel sur la POO IV. Les classes Java V. Syntaxe de base du Java Langage

Plus en détail

Cours 1: Java et les objets

Cours 1: Java et les objets Ressources Les interface homme-machine et le langage Java DUT première année Henri Garreta, Faculté des Sciences (Luminy) Cyril Pain-Barre & Sébastien Nedjar, IUT d Aix-Marseille (Aix) Cours 1: infodoc.iut.univ-aix.fr/~ihm/

Plus en détail

Cours 1. Contenu du cours : " Premières applications. " Compilation, Exécution, Chemin. " Affichage et saisie. " Types de données. " Flux de contrôle

Cours 1. Contenu du cours :  Premières applications.  Compilation, Exécution, Chemin.  Affichage et saisie.  Types de données.  Flux de contrôle Cours 1 1 Contenu du cours : " Premières applications " Compilation, Exécution, Chemin " Affichage et saisie " Types de données " Flux de contrôle " Applets " Arrays " OO de base Edition Le fichier texte

Plus en détail

INITIATION AU LANGAGE JAVA

INITIATION AU LANGAGE JAVA INITIATION AU LANGAGE JAVA I. Présentation 1.1 Historique : Au début des années 90, Sun travaillait sur un projet visant à concevoir des logiciels simples et performants exécutés dans des PDA (Personnal

Plus en détail

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

Résumé Introduction Programmation Java

Résumé Introduction Programmation Java Résumé Introduction Programmation Java Concepts Un programme : séquence, test conditionnel, boucles. Objets : Les objets Java modélisent les objets d un problème donné Classe : Les objets sont crées à

Plus en détail

PPOOGL. Florent de Dinechin. Java pour les nuls

PPOOGL. Florent de Dinechin. Java pour les nuls PPOOGL Florent de Dinechin Java pour les nuls Java en 30 minutes Introduction Grands principes Pour en finir avec l organisation Types de base et objets Le reste est dans le manuel PPOOGL 1 Introduction

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Annexe : La Programmation Informatique

Annexe : La Programmation Informatique GLOSSAIRE Table des matières La Programmation...2 Les langages de programmation...2 Java...2 La programmation orientée objet...2 Classe et Objet...3 API et Bibliothèque Logicielle...3 Environnement de

Plus en détail

Programmation Orientée Objet avec JAVA

Programmation Orientée Objet avec JAVA Programmation Orientée Objet avec JAVA Présenté par Abdoul Aziz Ciss Docteur en Cryptologie, Consultant ITSec Dept GIT EPT Email: aaciss@ept.sn Web : www.alekciss.com Tel: 77 451 92 95 Plan 1. Introduction

Plus en détail

JAVA Première approche

JAVA Première approche Année 2008-2009 JAVA Première approche Nicolas Baudru mél : nicolas.baudru@esil.univmed.fr page web : nicolas.baudru.perso.esil.univmed.fr 1 Qu'est ce que Java? C'est le nom d'une technologie mise au point

Plus en détail

Mise à niveau en Java

Mise à niveau en Java Mise à niveau en Java Cours 1 Stéphane Airiau Université Paris-Dauphine Stéphane Airiau (Université Paris-Dauphine) - Java Cours 1 1 Aujourd hui Eléments de base Variables, opérateurs, type d une expression

Plus en détail

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7 Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin

Plus en détail

Cours 1 : Introduction Générale + Objet I

Cours 1 : Introduction Générale + Objet I Organisation du cours Équipe pédagogique DUT Informatique S3 - Programmation Java Jean-Claude MARTIN MARTIN@LIMSI.FR Cours 1 : Introduction Générale + Objet I Jean-Claude MARTIN (Responsable, Cours, TD

Plus en détail

Syntaxe du langage JAVA. Philippe Roose (IUT Bayonne) Olivier Dedieu (INRIA)

Syntaxe du langage JAVA. Philippe Roose (IUT Bayonne) Olivier Dedieu (INRIA) Syntaxe du langage JAVA Philippe Roose (IUT Bayonne) Olivier Dedieu (INRIA) Structure du langage Les types primitifs boolean(true/false), byte (1 octet), char (2 octets), short (2 octets), int (4 octets),

Plus en détail

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/2012. 1 - Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/2012. 1 - Vue générale 2 - Mon premier programme 3 - Types de Programme Java 1 - Vue générale 2 - Mon premier programme 3 - Types de Programme 1 2 c est quoi? Technologie développée par SUN Microsystems lancée en 1995 Dans un des premiers papiers* sur le langage JAVA, SUN le décrit

Plus en détail

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. Encapsulation L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. La visibilité dépend des membres : certains membres peuvent être visibles et d'autres

Plus en détail

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations

Plus en détail

Chapitre 4. Java, graphisme de base. 4.1 Applets. 4.1.1 Un premier exemple

Chapitre 4. Java, graphisme de base. 4.1 Applets. 4.1.1 Un premier exemple Chapitre 4 Java, graphisme de base 4.1 Applets Une applet est un programme qui est inclus dans une page HTML et qui va donc être exécuter par le navigateur lisant cette page, à condition qu il possède

Plus en détail

Chapitre 1. 1.1 types primitifs. 1.2 Casting

Chapitre 1. 1.1 types primitifs. 1.2 Casting Chapitre 1 Généralités 1.1 types primitifs byte (1 octet) peut contenir les entiers entre -128 et +127. short (2 octets) contient les entiers compris entre -32768 et +32767. int (4 octet) va de -2*10e9

Plus en détail

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr . Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le

Plus en détail

ED : Construction d'interfaces graphiques en Java

ED : Construction d'interfaces graphiques en Java ED : Construction d'interfaces graphiques en Java Le but de cet exercice est d'écrire un code Java de la construction de l'interface graphique et de la réaction des actions de l'utilisateur sur une application

Plus en détail

Table des matières. iii

Table des matières. iii Fiches Java Alain Plantec Université de Bretagne Occidentale U.F.R. Sciences et Techniques Département Informatique mailto:alain.plantec@univ-brest.fr 2009-2012 ii Table des matières 1 Introduction 1 1.1

Plus en détail

Familiarisation avec Eclipse / Netbeans

Familiarisation avec Eclipse / Netbeans Institut Galilée LEE Année 011-01 Master T.P. 0 Familiarisation avec Eclipse / Netbeans Lien important contenant le pdf du cours et du TP, et ensuite des sources : http://www-lipn.univ-paris13.fr/~fouquere/mpls

Plus en détail

Interface graphique avec Java S. RITAL

Interface graphique avec Java S. RITAL Interface graphique avec Java S. RITAL Plan Ma première fenêtre Animation Les boutons Multi-threading Menu, Barre d'outils, Le Pattern MVC Les interfaces Observer / Observable Calculatrice Les boîtes à

Plus en détail

POO 1/3 - Introduction à la Programmation Orientée Objet. Pierre Parrend IUT Lumière Lyon II, 2005-2006 pierre.parrend@univ-lyon2.

POO 1/3 - Introduction à la Programmation Orientée Objet. Pierre Parrend IUT Lumière Lyon II, 2005-2006 pierre.parrend@univ-lyon2. POO 1/3 - Introduction à la Programmation Orientée Objet Pierre Parrend IUT Lumière Lyon II, 2005-2006 pierre.parrend@univ-lyon2.fr Sommaire Les Langages de Programmation Premier Programme Les Objets Objets

Plus en détail

PROGRAMMATION D APPLETS JAVA pascal.nicolas

PROGRAMMATION D APPLETS JAVA pascal.nicolas PROGRAMMATION D APPLETS JAVA pascal.nicolas nicolas@univ-angers.fr applet programme Java résidant sur un serveur web référencé dans une page web téléchargé sur le navigateur qui accède à la page web exécuté

Plus en détail

RN2-Programmation Orientée Objet - JAVA CH 1 Introduction à la POO et Java

RN2-Programmation Orientée Objet - JAVA CH 1 Introduction à la POO et Java RN2-Programmation Orientée Objet - JAVA CH 1 à la POO et Java Licence Professionnelle 2006 Agnès Guerraz INRIA Rhône-Alpes agnes.guerraz@inria.fr LP UPMF, Grenoble Septembre 2006 Ce cours reprend en grande

Plus en détail

Cours 1 : Introduction Générale + Objet

Cours 1 : Introduction Générale + Objet Organisation du cours Équipe pédagogique L2 S4 2009 : 2010 Programmation Objet Jean-Claude MARTIN MARTIN@LIMSI.FR Cours 1 : Introduction Générale + Objet 10 cours de 1h30 o Jean-Claude MARTIN (MARTIN@LIMSI.FR)

Plus en détail

Cours 8 : Exceptions, un peu de graphique

Cours 8 : Exceptions, un peu de graphique 1 Cours 8 : Exceptions, un peu de graphique 1. Traiter les exceptions usuelles 2. Créer ses propres exceptions 3. Exemples: les files. 4. Quelques éléments sur les graphiques 2 Exceptions Une exception

Plus en détail

Dr. Djamel Benmerzoug. Email : djamel.benmerzoug@univ-constantine2.dz

Dr. Djamel Benmerzoug. Email : djamel.benmerzoug@univ-constantine2.dz Master 2 SITW Les services Web Dr. Djamel Benmerzoug Email : djamel.benmerzoug@univ-constantine2.dz Maitre de Conférences A, Département TLSI Faculté des NTIC Université Constantine 2 Abdelhamid Mehri

Plus en détail

Java pour le Web. Cours Java - F. Michel

Java pour le Web. Cours Java - F. Michel Java pour le Web Cours Java - F. Michel Introduction à JEE 6 (ex J2EE) Historique Qu'est-ce que JEE JEE : Java Entreprise Edition (ex J2EE) 1. Une technologie outils liés au langage Java + des spécifications

Plus en détail

Licence d'informatique 2004-2005 Examen Programmation orientée objet Juin 2005

Licence d'informatique 2004-2005 Examen Programmation orientée objet Juin 2005 Licence d'informatique 2004-2005 Examen Programmation orientée objet Juin 2005 Durée de l'épreuve : 2 heures TRÈS IMPORTANT : respectez l'ordre des questions. La lisibilité sera un critère important pour

Plus en détail

Programmation objet. Objectifs - maitriser le paradigme de Programmation Orientée Objet - savoir utiliser efficacement et pleinement le langage Java

Programmation objet. Objectifs - maitriser le paradigme de Programmation Orientée Objet - savoir utiliser efficacement et pleinement le langage Java Programmation objet Objectifs - maitriser le paradigme de Programmation Orientée Objet - savoir utiliser efficacement et pleinement le langage Java - notions de bases d'algorithmique - bases syntaxiques

Plus en détail

Les architectures N-tiers

Les architectures N-tiers Les architectures N-tiers 1 SOMMAIRE DU COURS XML ET LES ARCHITECTURES N-TIER Introduction aux architectures N-tier Serveurs d applications Déploiement d applications J2EE Tiers applicatif : servlets Tiers

Plus en détail

Langage Java. Classe de première SI

Langage Java. Classe de première SI Langage Java Table des matières 1. Premiers pas...2 1.1. Introduction...2 1.2. Mon premier programme...2 1.3. Les commentaires...2 2. Les variables et les opérateurs...2 3. La classe Scanner...3 4. Les

Plus en détail

UNE APPLICATION ORIENTÉE OBJET MODÉLISATION ET PROGRAMMATION

UNE APPLICATION ORIENTÉE OBJET MODÉLISATION ET PROGRAMMATION UNE APPLICATION ORIENTÉE OBJET MODÉLISATION ET PROGRAMMATION Patrick Bellot Télécom ParisTech telecom-paristech.fr 2009 1 Une Calculatrice Électronique 2 3 Notation polonaise inversée Notation infixée

Plus en détail

Héritage presque multiple en Java (1/2)

Héritage presque multiple en Java (1/2) Héritage presque multiple en Java (1/2) Utiliser deux classes ou plus dans la définition d'une nouvelle classe peut se faire par composition. class Etudiant{ int numero; Diplome d; float passeexamen(examen

Plus en détail

Interfaces graphiques avec l API Swing

Interfaces graphiques avec l API Swing Interfaces graphiques avec l API Swing Les Swing Les classes graphiques Swing dérivent de la classe JComponent, qui hérite ellemême de la classe AWT (Abstract Window Toolkit). Tous les composants Swing

Plus en détail

Plan. Environnement Client/Serveur. Cours 6 Rappels Java (suite) Appel de méthode à distance. Utilité. static

Plan. Environnement Client/Serveur. Cours 6 Rappels Java (suite) Appel de méthode à distance. Utilité. static Plan Environnement Client/Serveur Cours 6 Rappels Java (suite) Appel de méthode à distance kn@lri.fr http://www.lri.fr/~kn 1 Rappels sur les systèmes d'exploitations / Communication par mémoire partagée

Plus en détail

TP : éléments pour créer une IHM en JAVA

TP : éléments pour créer une IHM en JAVA TP : éléments pour créer une IHM en JAVA Objectif : découvrir les grands principes pour créer une interface convivial entre l utilisateur et la machine (Interface-Homme-Machine :IHM) par une initiation

Plus en détail

Composite, Interpréteur et Visiteur

Composite, Interpréteur et Visiteur Composite, Interpréteur et Visiteur Cnam Paris jean-michel Douin Version du 10 Octobre 2003 Notes de cours java : les patterns Composite, Interpréteur et Visiteur Les notes et les Travaux Pratiques sont

Plus en détail

Java. Java. Le livrede. Avec 80 exercices corrigés. Avec 80 exercices corrigés. Le livre. Anne Tasso. 5 e édition. Un best-seller qui a déjà conquis

Java. Java. Le livrede. Avec 80 exercices corrigés. Avec 80 exercices corrigés. Le livre. Anne Tasso. 5 e édition. Un best-seller qui a déjà conquis Anne Tasso Un best-seller qui a déjà conquis des milliers d'étudiants! Java Le livre Java Le livrede de premier premier langage langage Avec 80 exercices corrigés Avec 80 exercices corrigés 5 e édition

Plus en détail

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Anne Tasso Java Le livre de premier langage 10 e édition Avec 109 exercices corrigés Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Table des matières Avant-propos Organisation de l ouvrage..............................

Plus en détail

Bien programmer. en Java 7. 10 000 ex. couleur. Avec plus de 50 études de cas et des comparaisons avec C++ et C# Emmanuel Puybaret.

Bien programmer. en Java 7. 10 000 ex. couleur. Avec plus de 50 études de cas et des comparaisons avec C++ et C# Emmanuel Puybaret. Bien programmer en Java 7 Avec plus de 50 études de cas et des comparaisons avec C++ et C# Plus de 10 000 ex. vendus! Édition en couleur Emmanuel Puybaret Groupe Eyrolles, 2012, ISBN : 978-2-212-12974-8

Plus en détail

Vulgarisation Java EE Java EE, c est quoi?

Vulgarisation Java EE Java EE, c est quoi? Paris, le 1 Février 2012 Vulgarisation Java EE Java EE, c est quoi? Sommaire Qu est ce que Java? Types d applications Java Environnements Java Versions de Java Java EE, c est quoi finalement? Standards

Plus en détail

Cours Langage JAVA. LO43 Automne 2005 Franck Gechter. Automne 2005 LO43 - Langage Java - Franck Gechter

Cours Langage JAVA. LO43 Automne 2005 Franck Gechter. Automne 2005 LO43 - Langage Java - Franck Gechter Cours Langage JAVA LO43 Automne 2005 Franck Gechter 1 Langage JAVA Plan du Cours Introduction Historique Conventions d éd écriture Notions de bases (Mots clefs, types primitifs, références,instructions,

Plus en détail

Programmation en Java IUT GEII (MC-II1) 1

Programmation en Java IUT GEII (MC-II1) 1 Programmation en Java IUT GEII (MC-II1) 1 Christophe BLANC - Paul CHECCHIN IUT Montluçon Université Blaise Pascal Novembre 2009 Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1)

Plus en détail

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation ING 01 LANGAGUE JAVA Durée : 21 heures 1090 HT / jour Dates : à définir en 2012 Concevoir et développer des programmes en langage Java Comprendre le fonctionnement de la machine virtuelle S approprier

Plus en détail

public class StaticExample { private static int compteur; public static double pi = 3.14159; } utilisation de la notation. respect des modificateurs

public class StaticExample { private static int compteur; public static double pi = 3.14159; } utilisation de la notation. respect des modificateurs static static : usage Le rôle essentiel d un moule est de permettre la création d objets. mais un moule a également des caractéristiques Il en est de même pour une classe. Usage : La déclaration des attributs

Plus en détail

Programmation Orientée Objet

Programmation Orientée Objet Programmation Orientée Objet Java Enseignant : Ramzi Mahmoudi mahmoudr@esiee.fr Année Universitaire: 2012/2013 Plan des chapitres 1. Introduction 2. Les bases du langage 3. La Programmation Objet avec

Plus en détail

Annexe E ABÉCÉDAIRE JAVA. E.1 Bases. E.1.1 Un programme simple

Annexe E ABÉCÉDAIRE JAVA. E.1 Bases. E.1.1 Un programme simple Annexe E ABÉCÉDAIRE JAVA Cette annexe fournit un abécédaire à l usage des lecteurs qui ne seraient pas familiarisés avec le langage Java. Cette introduction a pour but de développer vos compétences en

Plus en détail

L héritage Encore un petit topo des familles. Je pense qu'avec ce genre de chapitre, ce n'est pas du luxe...

L héritage Encore un petit topo des familles. Je pense qu'avec ce genre de chapitre, ce n'est pas du luxe... L héritage Encore un petit topo des familles. Je pense qu'avec ce genre de chapitre, ce n'est pas du luxe... Une classe hérite d'une autre classe par le biais du mot clé extends. Une classe ne peut hériter

Plus en détail

Le Langage Java et le Monde des Objets

Le Langage Java et le Monde des Objets . p.1 Le Langage Java et le Monde des Objets Les principes de la modélisation Orientée Objet. Qu est-ce qu une classe?. Les types de base. Utiliser les classes. Les tentacules de Java. . p.2 Bibliographie

Plus en détail

3 ElementsdeprogrammationJava 15 3.1 Premierspas... 15

3 ElementsdeprogrammationJava 15 3.1 Premierspas... 15 Tabledesmatières 1 IntroductionaulangageJava 1 1.1 EnvironnementJava... 1 1.1.1 Compilation... 2 1.1.2 Interprétation... 2 1.2 Programmationorientée-objet... 2 1.2.1 Classe... 3 1.2.2 Objet... 4 2 Syntaxedulangage

Plus en détail

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

Polymorphisme, la classe Object, les package et la visibilité en Java... 1 Polymorphisme, la classe Object, les package et la visibilité en Java. Polymorphisme, la classe Object, les package et la visibilité en Java.... 1 Polymorphisme.... 1 Le DownCast... 4 La Classe Object....

Plus en détail

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique

Plus en détail

Auto-évaluation Programmation en Java

Auto-évaluation Programmation en Java Auto-évaluation Programmation en Java Document: f0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION PROGRAMMATION EN

Plus en détail

Chapitre I Notions de base et outils de travail

Chapitre I Notions de base et outils de travail Chapitre I Notions de base et outils de travail Objectifs Connaître les principes fondateurs et l historique du langage Java S informer des principales caractéristiques du langage Java Connaître l environnement

Plus en détail

Eléments de syntaxe du langage Java

Eléments de syntaxe du langage Java c jan. 2014, v3.0 Java Eléments de syntaxe du langage Java Sébastien Jean Le but de ce document est de présenter es éléments de syntaxe du langage Java : les types primitifs, les opérateurs arithmétiques

Plus en détail

Bases Java - Eclipse / Netbeans

Bases Java - Eclipse / Netbeans Institut Galilée PDJ Année 2014-2015 Master 1 Environnements Java T.P. 1 Bases Java - Eclipse / Netbeans Il existe plusieurs environnements Java. Il est ESSENTIEL d utiliser la bonne version, et un environnement

Plus en détail

PARADIGME ORIENTÉ-OBJET

PARADIGME ORIENTÉ-OBJET PARADIGME ORIENTÉ-OBJET A programming paradigm that uses objects to design systems. Sébastien Adam Une introduction des concepts de base 2 Principes fondamentaux Modularité : vise à répartir les opérations

Plus en détail

Programmation servlet

Programmation servlet Programmation servlet Olivier Aubert 1/23 Références http://developer.java.sun.com/developer/onlinetraining/servlets/fundamenta http://www.servlets.com http://java.sun.com/products/jsp/index.html http://www.servletcentral.com/

Plus en détail

Introduction aux applets

Introduction aux applets Introduction aux applets M. Belguidoum Université Mentouri de Constantine Département Informatique M. Belguidoum (UMC) Programmation réseau 1 / 30 Plan 1 Quelques rappels 2 Principe de fonctionnement des

Plus en détail

Programmation Orientée Objet. Introduction à Java. Frédéric Mallet. http://deptinfo.unice.fr/~fmallet/

Programmation Orientée Objet. Introduction à Java. Frédéric Mallet. http://deptinfo.unice.fr/~fmallet/ Introduction à Java Frédéric Mallet http://deptinfo.unice.fr/~fmallet/ 2013-2014 F. Mallet -POO 1 Volume Horaire Programmation Orientée Objet Organisation du cours 12*1h30 de cours 12*1h30 de TD machine

Plus en détail

Les composants AWT et le dessin d'une interface graphique

Les composants AWT et le dessin d'une interface graphique Construction d'interface graphique et programmation événementielle avec Java Une interface graphique (composée de composants graphiques) ne sert à rien si elle ne permet pas de réagir aux actions de l'utilisateur

Plus en détail

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2 Langage et Concepts de Programmation Objet Travaux Dirigés no2 Pôle Informatique École Nationale Supérieure des Mines de St-Etienne Vous trouverez plus de détails sur les concepts abordés lors de ce TD

Plus en détail

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40 Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr

Plus en détail

Algorithmique et initiation à la programmation java

Algorithmique et initiation à la programmation java L3 Monnaie - Finance Algorithmique et initiation à la programmation java Première partie O. Auzende 2012-2013 1 Modalités Cours en amphithéâtre : les lundis de 12 h à 13 h 30 (amphi 3) o Deux fascicules

Plus en détail

RMI le langage Java XII-1 JMF

RMI le langage Java XII-1 JMF Remote Method Invocation (RMI) XII-1 Introduction RMI est un ensemble de classes permettant de manipuler des objets sur des machines distantes (objets distants) de manière similaire aux objets sur la machine

Plus en détail

MC-II1 - Cours n o 1 Langages de programmation Introduction à la POO

MC-II1 - Cours n o 1 Langages de programmation Introduction à la POO MC-II1 - Cours n o 1 Langages de programmation Introduction à la POO Sebastien.Kramm@univ-rouen.fr IUT GEII Rouen 2012-2013 S. Kramm (IUT Rouen) MCII1 - Cours 1 2012-2013 1 / 36 Sommaire 1 Langages de

Plus en détail

Les exceptions. Cours 12. vous les avez pratiquées sans le savoir... ArrayIndexOfBoundsException NullPointerException ClassNotFoundException...

Les exceptions. Cours 12. vous les avez pratiquées sans le savoir... ArrayIndexOfBoundsException NullPointerException ClassNotFoundException... Cours 12 Les exceptions vous les avez pratiquées sans le savoir... ArrayIndexOfBoundsException NullPointerException ClassNotFoundException... F.Gayral 1 Les exceptions, vous connaissez... public class

Plus en détail

Analyse statique de programmes Typage et analyse statique au sein de Java

Analyse statique de programmes Typage et analyse statique au sein de Java Analyse statique de programmes Typage et analyse statique au sein de Java Master Professionnel Informatique spécialité FSIL/FSI Jean-Marc Talbot jean-marc.talbot@lif.univ-mrs.fr Aix-Marseille Université

Plus en détail

Une introduction au langage C++ Marc Jachym, Lurpa

Une introduction au langage C++ Marc Jachym, Lurpa Une introduction au langage C++ Marc Jachym, Lurpa Janvier 2008 À l origine, le langage C Langage procédural créé dans les années 1970 aux laboratoires Bell (ATT : télécoms américains) en vue d écrire

Plus en détail

S. Laporte C# mode console DAIGL TS1

S. Laporte C# mode console DAIGL TS1 Bases du langage C# I. C# en mode console (mode texte) Avantages par rapport au mode graphique (Application Windows): - C'est un mode plus proche de l'approche algorithmique (pas de notions de composants,

Plus en détail

Programmation Orientée Objet

Programmation Orientée Objet Programmation Orientée Objet Initiation à Java Saber HENI saber.heni02@univ-paris8.fr http://handiman.univ-paris8.fr/~saber/ Plan du cours Chapitre 1 : Introduction au langage Java Chapitre 2 : Classes

Plus en détail

Remote Method Invocation (RMI)

Remote Method Invocation (RMI) Remote Method Invocation (RMI) TP Réseau Université Paul Sabatier Master Informatique 1 ère Année Année 2006/2007 Plan Objectifs et Inconvénients de RMI Fonctionnement Définitions Architecture et principe

Plus en détail

Premières fenêtres graphiques (Tutoriel + TP)

Premières fenêtres graphiques (Tutoriel + TP) Université Montpellier II Programmation par objets en Java (HLIN 505) Premières fenêtres graphiques (Tutoriel + TP) Ce tutoriel/tp a pour objectif de vous apprendre à : créer des fenêtres graphiques, insérer

Plus en détail

JAVA 8. JAVA 8 - Les fondamentaux du langage. Les fondamentaux du langage Java. Avec exercices pratiques et corrigés JAVA 8 29,90.

JAVA 8. JAVA 8 - Les fondamentaux du langage. Les fondamentaux du langage Java. Avec exercices pratiques et corrigés JAVA 8 29,90. Analyste et développeur pendant plus de 10 ans, Thierry GROUSSARD s est ensuite orienté vers la formation et plus particulièrement dans le domaine du développement. Sa connaissance approfondie des besoins

Plus en détail

La Gestion des Exceptions

La Gestion des Exceptions La Gestion des Exceptions Les exceptions Les exceptions représentent le mécanisme de gestion des erreurs intégré au langage Java. Il se compose d'objets représentant les erreurs et d'un ensemble de troismotsclésquipermettentdedétecteretdetraiterceserreurs(try,

Plus en détail

Unité de formation 1 : Structurer une application. Durée : 3 semaines

Unité de formation 1 : Structurer une application. Durée : 3 semaines PROGRAMME «DEVELOPPEUR LOGICIEL» Titre professionnel : «Développeur Logiciel» Inscrit au RNCP de niveau III (Bac+2) (JO du 23 Octobre 2007) (32 semaines) Unité de formation 1 : Structurer une application

Plus en détail

LES CONCEPTS ORIENTES OBJETS EN JAVA

LES CONCEPTS ORIENTES OBJETS EN JAVA CHAPITRE 2 : LES CONCEPTS ORIENTES OBJETS EN JAVA Objectifs spécifiques 1. Introduire le concept de classe et sa notation (1/2 heure) 2. Maîtriser la définition des attributs et méthodes d une classe (1

Plus en détail