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

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

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

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

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 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

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

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

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

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

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

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

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 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

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

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

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

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

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

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

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

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

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

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

Java c est quoi? Java pourquoi?

Java c est quoi? Java pourquoi? Grandes lignes du cours Cours JAVA : Le bases du langage Java. Version 3.02 Julien Sopena 1 1 julien.sopena@lip6.fr Équipe REGAL - INRIA Rocquencourt LIP6 - Université Pierre et Marie Curie Licence professionnelle

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

PROGRAMMATION PAR OBJETS

PROGRAMMATION PAR OBJETS PROGRAMMATION PAR OBJETS Java Environnement et constructions spécifiques Walter Rudametkin Maître de Conférences Bureau F011 Walter.Rudametkin@polytech-lille.fr B. Carré Polytech Lille 2 Java (Sun 1995)

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

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

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

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

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

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

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

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

Java Licence Professionnelle 2009-2010. Cours 7 : Classes et méthodes abstraites

Java Licence Professionnelle 2009-2010. Cours 7 : Classes et méthodes abstraites Java Licence Professionnelle 2009-2010 Cours 7 : Classes et méthodes abstraites 1 Java Classes et méthodes abstraites - Le mécanisme des classes abstraites permet de définir des comportements (méthodes)

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

Présentation de Java. Olivier de Pertat IT GROUP

Présentation de Java. Olivier de Pertat IT GROUP Présentation de Java Olivier de Pertat IT GROUP Qu'est-ce que Java? Un langage de programmation orienté objets Une architecture de Virtual Machine Un ensemble d'api variées Un ensemble d'outils : le Java

Plus en détail

JAVA. Introduction à la programmation objet avec java 1/4. Nadir BOUSSOUKAIA

JAVA. Introduction à la programmation objet avec java 1/4. Nadir BOUSSOUKAIA JAVA Introduction à la programmation objet avec java 1/4 Nadir BOUSSOUKAIA v1.04 SOMMAIRE Caractéristiques de java (40mn) Eléments du langage (40mn) Les core API java (20mn) 2 Partie 1 Caractéristiques

Plus en détail

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page

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

P r ob lé m a t iq u e d e la g é n é r icit é. Pr in cip e d e la g é n é r icit é e n Ja v a ( 1 /3 )

P r ob lé m a t iq u e d e la g é n é r icit é. Pr in cip e d e la g é n é r icit é e n Ja v a ( 1 /3 ) P r ob lé m a t iq u e d e la g é n é r icit é les versions de Java antérieures à 1.5 permettaient de créer des classes de structures contenant n'importe quels types d'objet : les collections (classes

Plus en détail

Une introduction à Java

Une introduction à Java Une introduction à Java IFT 287 (Semaine 1) UNIVERSITÉ DE SHERBROOKE 1 Java - Historique Développé par Sun Microsystems en 1994 Inventeur James Gosling (canadien!) Objectif langage sûr (fortement typé)

Plus en détail

JAVA TD0. Prise en main du langage Environnement de base JAVA 1

JAVA TD0. Prise en main du langage Environnement de base JAVA 1 JAVA TD0 Prise en main du langage Environnement de base JAVA 1 Mon premier programme public class HelloWorld { public static void main(string [] arg){ System.out.println("Hello, World!"); main(string []

Plus en détail

Chapitre VI- La validation de la composition.

Chapitre VI- La validation de la composition. Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions

Plus en détail

Java Licence Professionnelle CISII, 2009-2010

Java Licence Professionnelle CISII, 2009-2010 Licence Professionnelle CISII, 2009-2010 Cours 1 : Introduction à Java A. Belaïd abelaid@loria.fr Cours disponible sur le site : http://www.loria.fr/~abelaid puis Teaching 1 Fonctionnement 12 séances :

Plus en détail

Introduction au langage Java

Introduction au langage Java Introduction au langage Java 1 Introduction : Langage développé par Sun et purement orienté objet. N a pas de rapport direct avec Javascript développé par Netscape. Les applications java peuvent être des

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

Java - la plateforme

Java - la plateforme Java - la plateforme Java la plateforme Java? VM GC JIT Java Aujourd'hui 3 environnements d'exécutions différents Java ME (Micro Edition) pour PDA, téléphone Android (Java SE moins certain paquetages)

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

Java 7 Les fondamentaux du langage Java

Java 7 Les fondamentaux du langage Java 184 Java 7 Les fondamentaux du langage Java 1.1 Les bibliothèques graphiques Le langage Java propose deux bibliothèques dédiées à la conception d'interfaces graphiques. La bibliothèque AWT et la bibliothèque

Plus en détail

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Module 1 : Programmer une application informatique Durée

Plus en détail

Aide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr

Aide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr Aide mémoire UML & Java 1ère partie : Introduction marc.lemaire@u-cergy.fr 9 septembre 2014 1 2014 v1.11 Table des matières 1 Généralités 6 1.1 Notations utilisées.....................................

Plus en détail

Programmation par les Objets en Java

Programmation par les Objets en Java Programmation par les Objets en Java Najib TOUNSI Les classes en Java (TD 3) I. Notion de classe I.1 Classe, champs, méthodes, instanciation, this, private vs. public. Créer une classe Point (coordonnée

Plus en détail

Objets et Programmation. origine des langages orientés-objet

Objets et Programmation. origine des langages orientés-objet Objets et Programmation origine des langages orientés-objet modularité, encapsulation objets, classes, messages exemples en Java héritage, liaison dynamique G. Falquet, Th. Estier CUI Université de Genève

Plus en détail

Module BD et sites WEB

Module BD et sites WEB Module BD et sites WEB Cours 8 Bases de données et Web Anne Doucet Anne.Doucet@lip6.fr 1 Le Web Architecture Architectures Web Client/serveur 3-tiers Serveurs d applications Web et BD Couplage HTML-BD

Plus en détail

Java Licence Professionnelle CISII, 2009-10

Java Licence Professionnelle CISII, 2009-10 Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation

Plus en détail

Programmation par composants (1/3) Programmation par composants (2/3)

Programmation par composants (1/3) Programmation par composants (2/3) Programmation par composants (1/3) La programmation par composant vise le développement de logiciel par aggrégation de briques logicielles existantes est indépendante de la POO La programmation par composant

Plus en détail

Java Licence professionnelle CISII, 2009-2010

Java Licence professionnelle CISII, 2009-2010 Java Licence professionnelle CISII, 2009-2010 Cours 6 : le paquetage (package) Cours inspiré des cours de Richard Grin, Antoine Tabbone et Hazel Everett 1 Définition - Les classes Java sont regroupées

Plus en détail

Java Licence Professionnelle CISII, 2009-2010. Cours 2 : Classes et Objets

Java Licence Professionnelle CISII, 2009-2010. Cours 2 : Classes et Objets Licence Professionnelle CISII, 2009-2010 Cours 2 : Classes et Objets 1 Classes et Objets Objectifs des LOO : - Manipuler des objets - Découper les programmes suivant les types des objets manipulés - Regrouper

Plus en détail

ACTIVITÉ DE PROGRAMMATION

ACTIVITÉ DE PROGRAMMATION ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,

Plus en détail

Développement Logiciel

Développement Logiciel Développement Logiciel Éxamen session 1-2012-2013 (Vendedi 25 mai, 9h-11h) Seuls les documents liés directement au cours sont autorisés (comme dit sur le site) : sujets de TD, notes de cours, notes personnelles

Plus en détail

Évaluation et implémentation des langages

Évaluation et implémentation des langages Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation

Plus en détail

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML http://olivier-augereau.com Sommaire Introduction I) Les bases II) Les diagrammes

Plus en détail

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés) Introduction à la POO 1. Histoire de la POO 9 2. Historique du 12 La conception orientée objet 1. Approche procédurale et décomposition fonctionnelle 13 2. La transition vers l'approche objet 14 3. Les

Plus en détail

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 SHERLOCK 7 Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 Cette note montre comment intégrer un script Java dans une investigation Sherlock et les différents aspects de Java script. S T E M M E R I M A G I N

Plus en détail

Chapitre 10. Les interfaces Comparable et Comparator 1

Chapitre 10. Les interfaces Comparable et Comparator 1 Chapitre 10: Les interfaces Comparable et Comparator 1/5 Chapitre 10 Les interfaces Comparable et Comparator 1 1 Ce chapitre a été extrait du document "Objets, Algorithmes, Patterns" de [René Lalement],

Plus en détail

Chapitre 2. Classes et objets

Chapitre 2. Classes et objets Chapitre 2: Classes et Objets 1/10 Chapitre 2 Classes et objets Chapitre 2: Classes et Objets 2/10 Approche Orientée Objet Idée de base de A.O.O. repose sur l'observation de la façon dont nous procédons

Plus en détail

La technologie Java Card TM

La technologie Java Card TM Présentation interne au CESTI La technologie Java Card TM sauveron@labri.u-bordeaux.fr http://dept-info.labri.u-bordeaux.fr/~sauveron 8 novembre 2002 Plan Qu est ce que Java Card? Historique Les avantages

Plus en détail

Programmation Orientée Objet

Programmation Orientée Objet Programmation Orientée Objet Mohamed Tounsi Institut Supérieur d'informatique et de Multimédia Sfax Septembre 2014 Mohamed Tounsi (ISIMS) Programmation Orientée Objet Septembre 2014 1 / 16 Responsable

Plus en détail

Bases du langage. Historique Applications et applets Éléments de base du langage Classes et objets Les exceptions

Bases du langage. Historique Applications et applets Éléments de base du langage Classes et objets Les exceptions Langage JAVA Bases du langage Opérations sur les fichiers Réseau Multi-tâche Logiciel: interfaces... Gestion des périphériques (méthodes natives) Accès aux bases de données Bases du langage Historique

Plus en détail

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ; CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe

Plus en détail

Compte Rendu d intégration d application

Compte Rendu d intégration d application ISMA 3EME ANNEE Compte Rendu d intégration d application Compte Rendu Final Maxime ESCOURBIAC Jean-Christophe SEPTIER 19/12/2011 Table des matières Table des matières... 1 Introduction... 3 1. Le SGBD:...

Plus en détail

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour LMI 2 Programmation Orientée Objet POO - Cours 9 Said Jabbour jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Faculté des Sciences - Univ. Artois Février 2011 Les collections

Plus en détail

Introduction à Java. Philippe Genoud. Philippe.Genoud@imag.fr. http://www.inrialpes.fr/helix/people/genoud/ensjava

Introduction à Java. Philippe Genoud. Philippe.Genoud@imag.fr. http://www.inrialpes.fr/helix/people/genoud/ensjava Introduction à Java Philippe Genoud Philippe.Genoud@imag.fr http://www.inrialpes.fr/helix/people/genoud/ensjava http://membres-liglab.imag.fr/genoud/ensjava/m2cci/ 1 JAVA c'est quoi? Une technologie développée

Plus en détail

La carte à puce. Jean-Philippe Babau

La carte à puce. Jean-Philippe Babau La carte à puce Jean-Philippe Babau Département Informatique INSA Lyon Certains éléments de cette présentation sont issus de documents Gemplus Research Group 1 Introduction Carte à puce de plus en plus

Plus en détail

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET I. INTRODUCTION 1.1. HISTORIQUE 1991: Concepts Java pour Sun -conception d'un langage pour des appareils électroniques(code embarqué) -syntaxe proche du C++

Plus en détail

Présentation. Au programme. Fonctionnement. A l issue de ce module vous devriez...

Présentation. Au programme. Fonctionnement. A l issue de ce module vous devriez... Au programme Conception Orientée Objet Jean-Christophe Routier Licence mention Informatique Université Lille 1 Présentation L UE COO est le prolongement immédiat de l UE POO du S4 informatique. cf. http://portail.fil.univ-lille1.fr/portail/ls4/poo

Plus en détail

Université de Bangui. Modélisons en UML

Université de Bangui. Modélisons en UML Université de Bangui CRM Modélisons en UML Ce cours a été possible grâce à l initiative d Apollinaire MOLAYE qui m a contacté pour vous faire bénéficier de mes connaissances en nouvelles technologies et

Plus en détail

Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5

Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5 UNIVERISTE MOHAMMED PREMIER Faculté des Sciences d Oujda Oujda - Maroc Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5 Pr. El Mostafa DAOUDI Département de Mathématiques

Plus en détail

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN fbertin@neotilus.com

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN fbertin@neotilus.com Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184 Frédéric BERTIN fbertin@neotilus.com Présentaion : Mobile 3D Graphics API JSR 184 M3G :présentation Package optionnel de l api J2ME. Prend

Plus en détail

Outils, langage et approche Android Une introduction. Nicolas Stouls nicolas.stouls@insa lyon.fr

Outils, langage et approche Android Une introduction. Nicolas Stouls nicolas.stouls@insa lyon.fr Outils, langage et approche Android Une introduction Nicolas Stouls nicolas.stouls@insa lyon.fr Webographie La bible contenant «tout» : http://developer.android.com/index.html Les supports cette intervention

Plus en détail

Projet de Veille Technologique

Projet de Veille Technologique Projet de Veille Technologique Programmation carte à puce - JavaCard Ing. MZOUGHI Ines (i.mzoughi@gmail.com) Dr. MAHMOUDI Ramzi (mahmoudr@esiee.fr) TEST Sommaire Programmation JavaCard Les prérequis...

Plus en détail

Java 1.5 : principales nouveautés

Java 1.5 : principales nouveautés Cours 6 - TEP - UPMC - 2008/2009 p. 1/34 Java 1.5 : principales nouveautés classes paramétrées : generics encapsulation des valeurs de types primitifs : auto[un]boxing itération sur les boucles types énumérés

Plus en détail

java : Langage et Environnement

java : Langage et Environnement java : Langage et Environnement 1. rintroduction ava est une nouvelle technologie conçue par Sun Microsystems l'un des premiers fabriquants des stations de travail Sun. Depuis son apparition, à peine plus

Plus en détail

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail

Diagramme de classes

Diagramme de classes Diagramme de classes Un diagramme de classes décrit les classes et leurs relations (associations, généralisation/spécialisation, ). classe association méthodes attributs héritage Diagramme de classes :

Plus en détail

TP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet

TP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet TP Composants Java ME - Java EE Vous allez, dans ce TP, construire une architecture client serveur, plus précisément MIDlet cliente, servlet serveur. Pour cela, on va d'abord installer la partie serveur

Plus en détail

Programmation Objet Java Correction

Programmation Objet Java Correction INSA - 4 AE 2007 2008 Durée : 1H00 Contrôle Programmation Objet Java Correction Consignes Tous les documents sont autorisés, mais ils seront peu utiles. Indiquez vos nom et prénom sur chaque feuille. Le

Plus en détail

Threads. Threads. USTL http://www.lifl.fr/ routier 1

Threads. Threads. USTL http://www.lifl.fr/ routier 1 Threads USTL http://www.lifl.fr/ routier 1 Rappels - Définitions un Process est un programme qui tourne et dispose de ses propres ressources mémoire. OS multi-tâche plusieurs process en concurrence un

Plus en détail

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement des objets d'une classe Utilisation d'une classe Droit

Plus en détail

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki Institut Supérieur de Gestion Cours pour 3 ème LFIG Java Enterprise Edition Introduction Bayoudhi Chaouki 1 Java EE - Objectifs Faciliter le développement de nouvelles applications à base de composants

Plus en détail

Eclipse atelier Java

Eclipse atelier Java Eclipse atelier Java Table des matières 1. Introduction...2 2. Télécharger eclipse...3 3. Installer eclipse...3 4. Premier lancement d eclipse...3 5. Configurer eclipse pour faire du Java...5 6. Développer

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 I. Objectif du TP TP1 : Initiation à Java et Eclipse Programmation Mobile Initiation à l environnement Eclipse et aux notions de base du langage Java. II. Environnement

Plus en détail

Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter

Plus en détail

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés

Plus en détail

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3. 1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this

Plus en détail

2 e édition JAVA 5 et 6. Jérôme Bougeault. TSoft et Groupe Eyrolles, 2003, 2008, ISBN : 978-2-21212250-3

2 e édition JAVA 5 et 6. Jérôme Bougeault. TSoft et Groupe Eyrolles, 2003, 2008, ISBN : 978-2-21212250-3 2 e édition JAVA 5 et 6 Jérôme Bougeault TSoft et Groupe Eyrolles, 2003, 2008, ISBN : 978-2-21212250-3 Classes et objets Les constructeurs Propriétés Les méthodes L héritage Les interfaces Les relations

Plus en détail

Génie Logiciel avec Ada. 4 février 2013

Génie Logiciel avec Ada. 4 février 2013 Génie Logiciel 4 février 2013 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires I. Principes II. Notions propres à la POO I. Principes Chapitre

Plus en détail

Sécurité Java 2. Première approche. Installation des exemples. Exemple d'une applet

Sécurité Java 2. Première approche. Installation des exemples. Exemple d'une applet Sécurité Java 2 Première approche L 'internet permet une multiplication des moyens de diffusion des applications. Le courrier électronique, le Web, le FTP sont autant de moyens de distribuer des composants

Plus en détail