L'essentiel de Java et de l'objet
|
|
- Francine Bertrand
- il y a 8 ans
- Total affichages :
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 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étailTP1 : 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étailINTRODUCTION 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étailas 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étailStructure 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étailINITIATION 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étailProgrammer 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étailGé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étailPour 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étailInstitut 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étailCours 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étailRN2-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étailCours 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étailPlan 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étailEncapsulation. 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étailTP 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étailLangage 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étailIntroduction à 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étailInterfaces 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étailAnnexe : 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étailJava 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étailLangage 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étailInfo0101 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étailJava 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étailHé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étailPROGRAMMATION 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étailVulgarisation 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étailJAVA 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étailPolymorphisme, 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étailLANGAGUE 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étailJava 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étailProgrammation 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étailAuto-é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étailChapitre 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étailLangage 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étailJava 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étailRMI 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étailPré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étailJAVA. 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étailCours 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étailAnne 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étailP 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étailUne 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étailJAVA 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étailChapitre 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étailJava 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étailIntroduction 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étailBases 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étailJava - 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étailRemote 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étailJava 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étailProgramme «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étailAide 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étailProgrammation 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étailObjets 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étailModule 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étailJava 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étailProgrammation 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étailJava 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étailJava 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étailACTIVITÉ 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étailDé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 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étailbasé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étailApprendre 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étailSHERLOCK 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étailChapitre 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étailChapitre 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étailLa 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étailProgrammation 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étailBases 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étailExceptions. 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étailCompte 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étailLMI 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étailIntroduction à 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étailLa 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étailALGORITHMIQUE 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étailPré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étailUniversité 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étailPolycopié 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étailDé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étailOutils, 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étailProjet 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étailJava 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étailjava : 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étailQuelques 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étailDiagramme 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étailTP 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étailProgrammation 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étailThreads. 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étailC++ 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étailInstitut 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étailEclipse 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étailTP1 : 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étailLicence 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étailTable 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étail1. 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étail2 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étailGé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étailSé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