Cours Java : deuxième saison

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

Download "Cours Java : deuxième saison"

Transcription

1 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 1 Cours Java : deuxième saison Cours 7 : Exceptions, tests unitaires et assertions Cours 8 : Design Patterns 1 Cours 9 : Design Patterns 2 Cours 10 : Interfaces graphiques en Swing Cours 11 : Collections Contact:

2 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 2 Exceptions, Tests Unitaires et Assertions Introduction aux exceptions Traitement des exceptions en Java Conception par contrat Prérequis Garanties Tests unitaires avec Junit Classes de test Méthodes de tests Erreurs logiques et assertions

3 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 3 Programmes robustes Approches formelles : ex. Floyd/Hoare Fiable, Long, Coûteux Approches semi formelles : ex. Contrat Assez Fiable, Moins long et coûteux Approches empiriques : ex. Junit Moins fiable, moins long et coûteux Important: approches complémentaires

4 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 4 Dans ce cours Gestion propre des erreurs en Java Important: souvent mal fait Conception par contrat «light» Méthode de conception Systématise la gestion des exceptions Test unitaire avec Junit Pour écrire proprement des tests

5 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 5 Typologie des erreurs Erreurs de compilation : par le compilateur javac Erreurs de syntaxe, pbm. de typage Erreurs d'exécution : par la machine virtuelle java Erreurs système : générée par l'environnement => RuntimeException Erreurs contractuelles : mauvaise utilisation d'un objet => Exception Erreurs logiques : un bug du programme! => AssertionError

6 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 6 Les Exceptions En Java, toute erreur est une exception Une exception = un objet d'une classe qui hérite de java.lang.runtimeexception : exceptions système, non vérifiées par le compilateur (pas de déclarations throws) hérite de java.lang.exception : exceptions vérifiées par le compilateur (nécessité des déclarations throws) Règle : on ne définit nous même que des exception non vérifiées, donc on héritera systématiquement de java.lang.exception (ou d'une sous classe)

7 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 7 Pourquoi les exceptions? Erreurs à la construction Un constructeur ne retourne rien, donc surement pas un code d'erreur Séparation des préoccupations D'un côté : code qui génère les erreurs => throw De l'autre côté : code qui traite les erreurs => try... catch Syndrome du «segmentation fault» Messages d'erreurs «remontée» de la pile d'exécution Possibilité de récupération (poursuivre malgré l'exception)

8 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 8 Traitement des exceptions Traitement immédiat On traite l'exception dès qu'on la détecte, c'est le cas le plus fréquent Clauses multiples Plusieurs types d'exceptions traitées au même endroit Délégation / Filtrage On délègue le traitement de l'exception, même si on la détecte Clause finale Du code exécuté quoi qu'il arrive (exception levée ou non)

9 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 9 Traitement immédiat Les blocs try... catch : Public class MaClasse {... public void mamethode(...) { try { // ici, code générant éventuellement // une exception de type MonException catch(monexception e) { // traitement de l'exception...

10 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 10 Exemple: utilisation du JDK (1/2) Dans la doc. du jdk: FileReader public FileReader(String filename) throws FileNotFoundException Creates a new FileReader, given the name of the file to read from. Parameters: filename - the name of the file to read from Throws: FileNotFoundException - if the named file does not exist, is a directory rather than a regular file, or for some other reason cannot be opened for reading. Important: si on veut utiliser une méthode qui throws une exception, le programme ne compilera pas si on indique comment traiter cette exception

11 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 11 Exemple: utilisation du JDK (2/2) Mode d'emploi: Public class MaClasse {... public void mamethode(...) { try { // ici, code générant éventuellement // une exception FileReader fr = new FileReader("toto.txt"); // et la suite... catch(filenotfoundexception e) { // traitement de l'exception System.err.println("Je ne trouve pas toto.txt");...

12 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 12 Clauses multiples : pourquoi? Problèmes Un même instruction peut générer plusieurs types d'exception différents Exemple: constructeur de java.io.fileinputstream throws FileNotFoundException et SecurityException On veut mettre plusieurs instructions dans le corps d'un try... catch, chaque instruction peut lever plusieurs types d'instructions Exemple: première instruction : constructeur FileReader peut lever FileNotFoundException Second instruction: lecture dans le fichier avec méthode read de FileReader, peut lever IOException

13 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 13 Clauses multiples : comment? Public class MaClasse {... public void mamethode(...) { try { // ici, code générant éventuellement // une exception FileReader fr = new FileReader("toto.txt"); int carac = fr.read(); // et la suite... catch(filenotfoundexception e) { // traitement de l'exception System.err.println("Je ne trouve pas toto.txt"); catch(ioexception e) { // traitement de l'exception System.err.println("Problème de lecture");...

14 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 14 Clauses multiples et héritage Les exceptions sont des objets, ils sont donc instances de classes et on peut donc hériter de classes d'exceptions L'ordre dans lequel on liste les exceptions «catch» est important D'abord les sous classes d'exceptions les moins génériques Ensuite les super classes d'exceptions les plus génériques Raison: c'est simple, si on traite d'abord un cas plus générique, on ne traitera jamais le cas le plus spécifique Ne pas s'inquiéter, le compilateur vérifie tout cela

15 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 15 Que faire dans une clause catch? Au minimum (phase de développement): Afficher un message d'erreur Conseil : Au mieux (programme diffusé): catch(monexception e) { System.err.println("Erreur : patati"); e.printstacktrace(system.err); Récupération de l'erreur Délégation ou filtrage : prévenir les «supérieurs» INTERDIT! De ne rien faire catch(monexception e) { // ici je ne fais rien Pourquoi? Parce que l'utilisateur ne sait pas qu'il s'est passé quelque chose!

16 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 16 Délégation Question: que faire si on ne veut/peut pas traiter une exception? Réponse 1: on peut déléguer à celui qui nous a appelé public class MaClasse {... public void mamethode(...) throws FileNotFoundException, IOException { // ici, code générant éventuellement // des exceptions FileReader fr = new FileReader("toto.txt"); int carac = fr.read(); // et la suite Remarque: si on oublie le throws alors le compilateur se plaint

17 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 17 Filtrage Question: que faire si on ne veut/peut pas traiter une exception? Réponse 2: on peut filtrer pour celui qui nous a appelé public class MaClasse {... public void mamethode(...) throws FichierException { try { FileReader fr = new FileReader("toto.txt"); int carac = fr.read(); // et la suite... catch(exception e) { // pour toute exception FichierException fe = new FichierException("problème de fichier"); fr.initcause(e); // enregistrer la cause throw fr; // lancer l'exception filtrée Remarque: la classe FichierException est une exception personalisée (cf. suite du cours)

18 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 18 Clause finale Du code exécuté dans tous les cas, même si exception il y a public class MaClasse {... public void mamethode(...) { try { // ici, code générant éventuellement // une exception FileReader fr = new FileReader("toto.txt"); // et la suite... catch(filenotfoundexception e) { // traitement de l'exception System.err.println("Je ne trouve pas toto.txt"); finally { fr.close(); // en fait pas nécessaire en Java...

19 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 19 Exceptions et conception par contrat Questions rituelles sur les «exceptions» Pourquoi créer ses propres classes d'exceptions? Quand et pourquoi signaler une exception personnalisée? Réponses de la conception par contrat: On créer une classe d'exception (ou hiérarchie) par catégorie de contrat (en général une hiérarchie par paquetage de 10 à 20 classes maxi) On signale une exception si un contrat est rompu La conception par contrat fournit de plus: un moyen de gérer les erreurs logiques avec les assertions Enfin, elle sert de guide pour l'élaboration des tests unitaires

20 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 20 Garanties (ou postcondition externe) : ce que le fournisseur se charge de fournir si le client respecte sa part du contrat et que tout se passe bien. Principes de la conception par contrat Fournisseurs Classes/Méthodes que l'on définit nous même Clients Code externe (que l'on ne voit pas) et qui utilise nos classes fournisseurs Contrats (pour chaque méthode publique d'une classe en cours de conception) : Prérequis (ou précondition externe) : ce que les clients doivent respecter lorsqu'ils font appel au fournisseur en cours de conception.

21 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 21 Exemple de contrat (monde réel) Fournisseur: Société de chemins de fer Clients: Passagers Contrat : transport de Paris à Marseille Prérequis (conditions booléennes imposées au client) : Le client paye son billet Le client arrive à l'heure pour son train Garanties (conditions booléennes vraies après traitement): Transport en tout sécurité du passager dans les délais prévus Prévoir une indeminisation en cas de retard

22 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 22 Exemple (monde des objets) 1/7 Une classe de Cube bornée contenant du liquide (en litres) public class CuveBornee { private double niveau; private double limite; public CuveBornee(double limite) { this.limite = limite; niveau = 0; public double getniveau() { return niveau; public void remplir(double quantite) {... public void vider(double quantite) {...

23 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 23 Exemple (monde des objets) 2/7 Fournisseur: Méthode remplir() de la classe CuveBornee Clients: Toute expression qui invoque la méthode remplir sur un objet de la classe CuveBornee depuis l'extérieur (ex.: dans une classe de test pour cuve bornée, dans un programme qui a besoin d'une cuve bornée, etc.) Contrat: remplir la cuve avec du liquide Prérequis : le liquide versé par le client, ajouté au niveau actuel ne dépasse pas la limite Garanties : le niveau est l'ancien niveau auquel on ajoute la quantité versée par le client

24 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 24 Exemple (monde des objets) 3/7 Que peut il se passer? Le client assure les prérequis Le fournisseur fournit les garanties Le client peut tester les garanties => Ecrire un test Si un test de garantie échoue, alors il s'agit d'un bug! Un problème d'environnement survient (ex. plus de mémoire) : alors une exception système est levée par Java (nous, on ne s'en occupe pas à priori) Le client n'assure pas les prérequis Le fournisseur lève une exception personnalisée => définir une (ou plusieurs) classe(s) personnalisée(s)

25 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 25 Exemple (monde des objets) 4/7 Phase 1 : Classe(s) d'exception(s) personnalisée(s) // Exception de base pour tous les problèmes de cuve public class CuveException extends Exception { public CuveException(String message) { super("problème de cuve : " + message); // Exception spécifique pour le contrat de remplir() public class CuvePleineException extends CuveException { public CuvePleineException() { super("cuve pleine");

26 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 26 Exemple (monde des objets) 5/7 Phase 2 : Vérification des prérequis => tester la condition de prérequis => lever une exception personnalisée si la condition est fausse Public class CuveBornee {... public void remplir(double liquide) throws CuvePleineException { // PREREQUIS : Le liquide versé, ajouté au niveau actuelle, // ne dépasse pas la limite if(niveau+liquide>limite) throw new CuvePleineException(); //... la suite... Rappels : Le fournisseur est la méthode remplir, Les clients sont ceux qui invoquent la méthode

27 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 27 Exemple (monde des objets) 6/7 Phase 3 : Description des traitements => (enfin) le code java de la méthode! Public class CuveBornee {... public void remplir(double liquide) throws CuvePleineException { // PREREQUIS : Le liquide versé, ajouté au niveau actuelle, // ne dépasse pas la limite if(niveau+liquide>limite) throw new CuvePleineException(); // TRAITEMENT niveau = niveau+liquide; // la suite...

28 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 28 Exemple (monde des objets) 7/7 Phase 4 : Expression des garanties => un commentaire qui permettra ensuite de créer un test public class CuveBornee {... public void remplir(double liquide) throws CuvePleineException { // PREREQUIS : Le liquide versé, ajouté au niveau actuelle, // ne dépasse pas la limite if(niveau+liquide>limite) throw new CuvePleineException(); // TRAITEMENT niveau = niveau+liquide; // GARANTIE : le niveau est l'ancien niveau auquel on ajoute // la quantité versée par le client // this.getniveau() = old.getniveau()+liquide; // Problème : java ne connait pas old, donc commentaire!...

29 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 29 Test unitaire avec Junit Evidence : il faut tester ses programmes Constat : manque de méthodologie Faire un main dans une classe séparée tester «un peu au pif» Solution : Junit (sur Pour chaque classe MaClasse, créer une classe MaClasseTest qui hérite de junit.framework.testcase Pour chaque méthode mamethode() de MaClasse (modulo surcharge), créer (au moins) une méthode de test testmamethode() dans MaClasseTest Il faut aussi créer des test unitaires pour tester la combinaison de plusieurs méthodes

30 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 30 Structure d'une classe de test import junit.framework.*; public class MaClasseTest extends TestCase { private MaClasse mon_objet; // pour tout les tests public MaClasseTest() { mon_objet = null; public void setup() { // préparation global de tous les tests mon_objet = new MaClasse(...); public void setdown() { // terminaison de tous les tests mon_objet = null; public void testmamethode() { // test unitaire // ici les tests pour mamethode() dans MaClasse // on peut utiliser mon_objet ou utiliser des // objets MaClasse locaux

31 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 31 Contenu d'un test unitaire Chaque test contient: Du code java réalisant les tests Des assertions de tests vérifiant les résultats/modifications asserttrue(<expression booléenne>) => vrai ok, faux erreur de test Remarque: asserttrue(true) toujours vrai et asserttrue(false) toujours faux import junit.framework.*; public class MaClasseTest extends TestCase {... public void testmamethode() { // test unitaire // ici les tests pour mamethode() dans MaClasse // on peut utiliser mon_objet ou utiliser des // objets MaClasse locaux <resultat> = mon_objet.mamethode(...); asserttrue(<test booléen sur le résultat>); //... autres tests possibles

32 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 32 Exemple : Test de la cuve bornée 1) Tester les prérequis public class CuveBorneeTest extends TestCase { private CuveBornee cuve1;... public void setup() { cuve1 = new CuveBornee(10.0);... public void testremplir() { // 1) Tester le prérequis // 1.a) prérequis non valide try { cuve1.remplir(12.0); asserttrue(false); // il ne faut pas arriver ici catch(cuvepleineexception e) { asserttrue(true); // il faut arriver ici // 1.b) prérequis valide try { cuve1.remplir(4.0); asserttrue(true); // il faut arriver ici catch(cuvepleineexception e) { asserttrue(false); // il ne faut pas arriver ici...

33 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 33 Exemple : Test de la cuve bornée 2) Tester les garanties public class CuveBorneeTest extends TestCase {... public void testremplir() { // 1) Tester le prérequis... double old_niveau = cuve1.getniveau(); // avant de remplir try { cuve1.remplir(4.0); asserttrue(true); // il faut arriver ici catch(cuvepleineexception e) { asserttrue(false); // il ne faut pas arriver ici // 2) Tester les garanties // GARANTIE: this.getniveau() = old.getniveau()+liquide asserttrue(cuve1.getniveau()=old_niveau+4.0);... Remarque : on pourrait aussi cloner la cuve avant de la modifier

34 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 34 Exemple : Test de la cuve bornée 3) Lancer les tests java junit.swingui.testrunner CuveBorneeTest Attention : il faut que junit.jar et CuveBorneeTest soient dans le CLASSPATH Remarque: en TME, nous utiliserons BlueJ, un ide qui intègre junit cf.

35 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 35 Même en étant très rigoureux (par exemple en adoptant la conception par contrat) et en écrivant beaucoup de tests unitaires, il est très difficile de s'assurer que le code d'une méthode fait bien son travail : point de vue du fournisseur => on veut aussi tester dans le code du fournisseur Erreurs logiques Dans la conception par contrat, on a vu comment: Décrire au sein du fournisseur la vérification que les clients respectent leurs prérequis Décrire dans un test unitaire la vérification que le fournisseur fournit ses garanties du point de vue du client Cela nous aide à écrire proprement les intéractions entre clients et fournisseurs mais cela ne nous aide pas à tester la logique interne du fournisseur Les erreurs logiques sont des bugs

36 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 36 Les assertions Java fournit un mécanisme : les assertions assert(<condition booléenne>) Si vrai : le programme se poursuit normalement Si faux : une exception AssertionError est levée Attention 1: ne pas confondre asserttrue() est une assertion de test pour les tests unitaires, c'est un mécanisme spécifique de junit assert() est une assertion logique pour le code du fournisseur, c'est un mécanisme standard de Java (> 1.4) Attention 2 : les assertions logiques ne font pas partie du code fonctionnel, on peut les désactiver avec: java -da MaClasseMain

37 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 37 Exemple : assertions pour la cuve bornée En général, on sépare: Préconditions : assertions avant un traitement Postconditions : assertions après un traitement public class CuveBornee {... public void remplir(double liquide) throws CuvePleineException { if(niveau+liquide>limite) throw new CuvePleinException(); // PRECONDITION: le niveau est correct assert(niveau>=0 && niveau<=limite); niveau = niveau+liquide; // POSTCONDITION: le niveau reste correct assert(niveau>=0 && niveau<=limite);...

38 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 38 Conclusion A partir de maintenant, vous savez: Comment traiter les exceptions: Traitement immédiat Délégation ou filtrage Comment concevoir des classes robustes Vision contrat client/fournisseur Votre rôle est de définir le fournisseur Prérequis et exceptions personnalisées Garanties et tests unitaires Comment ajouter des assertions pour débusquer les bugs => A partir de maintenant, vos programmes Java doivent être robustes

39 Programmation Objet en Java Cours 5 Exception (C) 2005, Frédéric Peschanski 39 Le mot de la fin Exercice à la maison: Compléter la classe de cuve bornée Pointeurs: Junit : Conception par contrat : Assertions logiques : La semaine prochaine: Les design patterns (1/2)

Gestion des tests avec JUnit

Gestion des tests avec JUnit Gestion des tests avec JUnit JUnit Outil de gestion des tests unitaires pour les programmes Java, JUnit fait partie d un cadre plus général pour le test unitaire des programmes, le modèle de conception

Plus en détail

JUnit 3.8 / JUnit 4. P. Graffion

JUnit 3.8 / JUnit 4. P. Graffion JUnit 3.8 / JUnit 4 P. Graffion février 2015 Objectifs Framework de tests écrit pour faciliter : l écriture de tests tests unitaires tests de recette l exécution de ces tests l exploitation de ces tests

Plus en détail

Cours de Test Logiciel

Cours de Test Logiciel S.Bardin Test Logiciel 1/ 31 Cours de Test Logiciel Leçon 4 : Tests de régression Sébastien Bardin CEA-LIST, Laboratoire de Sûreté Logicielle sebastien.bardin@cea.fr http://sebastien.bardin.free.fr Tests

Plus en détail

Exception en Java. Le principe général des exceptions. La syntaxe des exceptions.

Exception en Java. Le principe général des exceptions. La syntaxe des exceptions. Exception en Java. Exception en Java....1 Le principe général des exceptions...1 La syntaxe des exceptions....1 La hiérarchie des exceptions:...2 Exemple d'exception....3 Exception et signature de service....4

Plus en détail

CSC4002 : Contrôle Final Session 1. Date : jeudi 26 janvier 2012 Durée : 1H30. Coordonnateurs : Christian Bac et Denis Conan

CSC4002 : Contrôle Final Session 1. Date : jeudi 26 janvier 2012 Durée : 1H30. Coordonnateurs : Christian Bac et Denis Conan Corrigé et Barème Contrôle de connaissances 2011/2012 des étudiants de 2 è année (EI2) CSC4002 : Contrôle Final Session 1 Date : jeudi 26 janvier 2012 Durée : 1H30 Coordonnateurs : Christian Bac et Denis

Plus en détail

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

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

Plus en détail

Java Modeling Language

Java Modeling Language Java Modeling Language Benoit Darties ESIREM ITR4 benoit.darties@u bourgogne.fr Bibliographie Documents références sur JML : http://www.eecs.ucf.edu/~leavens/jml/ http://kalysto.org/~nono/teaching/jml/

Plus en détail

Environnements de développement (intégrés)

Environnements de développement (intégrés) Environnements de développement (intégrés) Tests unitaires, outils de couverture de code Patrick Labatut labatut@di.ens.fr http://www.di.ens.fr/~labatut/ Département d informatique École normale supérieure

Plus en détail

Java. Java Modeling Language (JML) Qu est-ce que JML? Java (suite) Conception par Contrat. Invariants, Pré-/Postconditions

Java. Java Modeling Language (JML) Qu est-ce que JML? Java (suite) Conception par Contrat. Invariants, Pré-/Postconditions Java Java Modeling Language (JML) Arnaud LANOIX Université Nancy 2 Master1 GL Langage de Programmation Orientée Objet développé par Sun Projet OAK (1991), Java (1995),...Java 1.5 (2004) http://java.sun.com/

Plus en détail

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

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

Plus en détail

NFP121, Cnam/Paris JUnit tests pour Android Cnam Paris jean-michel Douin, douin au cnam point fr version en cours

NFP121, Cnam/Paris JUnit tests pour Android Cnam Paris jean-michel Douin, douin au cnam point fr version en cours , Cnam/Paris JUnit tests pour Android Cnam Paris jean-michel Douin, douin au cnam point fr version en cours Notes sur l usage de JUnit3 sous Android Le lecteur intéressé par un cours sur les tests pourra

Plus en détail

Externaliser les données des tests. Première partie : Une classe à tester

Externaliser les données des tests. Première partie : Une classe à tester Externaliser les données des tests Jusqu'alors, on avait créé des classes de tests pour tester les classes du projet à développer. Ces classes de tests contenaient les programmes de tests avec leurs données.

Plus en détail

Auto-évaluation Programmation en Java

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

Plus en détail

Mieux programmer en Java

Mieux programmer en Java Mieux programmer en Java Peter Haggar Éditions Eyrolles ISBN : 2-212-09171-0 2000 PARTIE 1 l exécution de l instruction return, cependant, le contrôle est transféré au bloc finally en // 2. Cela provoque

Plus en détail

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

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

Plus en détail

L'application WinForm et le composant d'accès aux données

L'application WinForm et le composant d'accès aux données L'application WinForm et le composant d'accès aux données Vous disposez d'un squelette de l'application AntoineVersion0- ainsi que de la base de données à restaurer dans SqlServer Bd_Antoine.dat-. Travail

Plus en détail

Une introduction au langage C++ Marc Jachym, Lurpa

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

Plus en détail

Apache STORM. Version 1.0. avec des fichiers

Apache STORM. Version 1.0. avec des fichiers Apache STORM avec des fichiers Version 1.0 Rédacteur : Philippe Lacomme (placomme@isima.fr) Date : 3 septembre 2015 Liste des modifications Date : 9/09/2015 Auteur : Philippe Lacomme Modifications : ajout

Plus en détail

Avant de programmer en Java DOS Set Path=C:\JDK\bin Path=C:\JDK\bin C:\JDK\bin Set Path=%Path%;C:\JDK\bin C:\JDK\bin C:\JDK\

Avant de programmer en Java DOS Set Path=C:\JDK\bin Path=C:\JDK\bin C:\JDK\bin Set Path=%Path%;C:\JDK\bin C:\JDK\bin C:\JDK\ Exercices corrigés de programmation OO Java Préparés par : Mlle Imene Sghaier Année Académique : 2006-2007 Premiers Pas I. Avant de programmer en Java Le JDK de Sun (Java Development Kit) est l outil essentiel

Plus en détail

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

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

Plus en détail

Résumé Introduction Programmation Java

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

Plus en détail

Programmation - Java - Fiches du Langage. Marie Beurton-Aimar

Programmation - Java - Fiches du Langage. Marie Beurton-Aimar Programmation - Java - Fiches du Langage Marie Beurton-Aimar Fiche Numéro 1 1.1 Structure d un programme Java Toutes les instructions se terminent par un ; Le nom du fichier qui contient une classe doit

Plus en détail

Arbres binaires. Illustration avec des arbres binaires de décision Généricité bornée Synthèse sur les assertions et les exceptions

Arbres binaires. Illustration avec des arbres binaires de décision Généricité bornée Synthèse sur les assertions et les exceptions Arbres binaires Illustration avec des arbres binaires de décision Généricité bornée Synthèse sur les assertions et les exceptions FMIN220 Structures de données Université de Montpellier 2015 FMIN220 (UM)

Plus en détail

Corrigé Barème Contrôle de connaissances 2013/2014 des étudiants de 2 è année (EI2) CSC4002 : Contrôle Final Session 2

Corrigé Barème Contrôle de connaissances 2013/2014 des étudiants de 2 è année (EI2) CSC4002 : Contrôle Final Session 2 Corrigé Barème Contrôle de connaissances 2013/2014 des étudiants de 2 è année (EI2) CSC4002 : Contrôle Final Session 2 Date : 27 Mars 2014 Durée : 1H30 Coordonnateurs : Christian Bac et Denis Conan Les

Plus en détail

Introduction au Java Development Kit Et quelques instructions en Java. 1 Création des répertoires d accueil des programmes Java

Introduction au Java Development Kit Et quelques instructions en Java. 1 Création des répertoires d accueil des programmes Java HLIN406 - Janvier 2015 Le Java Development Kit offre un ensemble d outils de développement d applications Java. Pour utiliser ces outils, JDK ne propose pas d interface utilisateur, on doit donc écrire

Plus en détail

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

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

Plus en détail

LI260: Course de voiture. Vincent Guigue Vincent.guigue@lip6.fr - webia.lip6.fr/~guigue

LI260: Course de voiture. Vincent Guigue Vincent.guigue@lip6.fr - webia.lip6.fr/~guigue LI260: Course de voiture Vincent Guigue Vincent.guigue@lip6.fr - webia.lip6.fr/~guigue Quelques images pour comprendre le contexte Une compétition algorithmique: http://www.dtek.chalmers.se/groups/icfpcontest/

Plus en détail

Introduction à la programmation en Java. Java sans Bluej. Ligne de commande entrées/sorties fichiers. Où en sommes-nous? Hello, world!

Introduction à la programmation en Java. Java sans Bluej. Ligne de commande entrées/sorties fichiers. Où en sommes-nous? Hello, world! Introduction à la programmation en Java Frédéric MALLET Jean-Paul ROY U.F.R. Sciences de Nice Licence Math-Info 2006-2007 Module L1I1 12-1 Où en sommes-nous? Nous savons rédiger le texte d une classe d

Plus en détail

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector l tutorial Interfaces. l Stack

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T> Page 1 sur 5 TP3 Lectures préalables : l Java_II l tutorial Interfaces Thèmes du TP : l la classe Object l Vector l Stack Une pile d'objects Les éléments de la classe Pile sont maintenant des instances

Plus en détail

Algorithmique, C++ Recollement d'images

Algorithmique, C++ Recollement d'images Algorithmique, C++ Recollement d'images Introduction à C++ Quatrième partie Quelques outils pour améliorer le code ou vous simplifier la vie Plan de la séance Compilation : optimisation Profiling et débogage

Plus en détail

Java Avancé - Cours 2

Java Avancé - Cours 2 Java avancé - cours 2 1/8 Java Avancé - Cours 2 Plan 1 Communication entre objets 1 1.1 Motivation....................................................... 1 1.2 Relations entre le panier et le rayon.........................................

Plus en détail

ACTIVITÉ DE PROGRAMMATION

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

Plus en détail

Université Paris Diderot ISIFAR Année 2008-2009. Exceptions et Classes Abstraites

Université Paris Diderot ISIFAR Année 2008-2009. Exceptions et Classes Abstraites Université Paris Diderot JAVA ISIFAR Année 2008-2009 TP n 7 - Correction Exceptions et Classes Abstraites Exercice 1 [Utilisation des Exceptions] La méthode parseint est spécifiée ainsi : public static

Plus en détail

Synchro et Threads Java TM

Synchro et Threads Java TM Synchro et Threads Java TM NICOD JEAN-MARC Master 2 Informatique Université de Franche-Comté UFR des Sciences et Techniques septembre 2008 NICOD JEAN-MARC Synchro et Threads avec Java TM 1 / 32 Sommaire

Plus en détail

Le Langage Java et le Monde des Objets

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

Plus en détail

Nom: INF5171 Programmation concurrente et parallèle Examen nal (Automne 2012) Code permanent: 1 2 3 4 5 Total /10 /10 /10 /10 /10 /50 XXX XXX XXX

Nom: INF5171 Programmation concurrente et parallèle Examen nal (Automne 2012) Code permanent: 1 2 3 4 5 Total /10 /10 /10 /10 /10 /50 XXX XXX XXX Examen nal 1 INF5171 Programmation concurrente et parallèle Examen nal (Automne 2012) Durée: 13h30 16h30 Documentation : Documentation personnelle (papier) autorisée. Nom: Code permanent: 1 2 3 4 5 Total

Plus en détail

Serveur d'archivage 2007 Installation et utilisation de la BD exist

Serveur d'archivage 2007 Installation et utilisation de la BD exist Type du document Procédure d'installation Auteur(s) Eric Bouladier Date de création 26/02/20007 Domaine de diffusion tous Validé par Equipe Versions Date Auteur(s) Modifications V1.00 26/02/2007 Eric Bouladier

Plus en détail

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

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

Plus en détail

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

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

Plus en détail

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code Généralités javadoc Université de Nice - Sophia Antipolis Richard Grin Version 1.4.1 8/2/11 javadoc produit de la documentation en partant de commentaires particuliers insérés dans le code source des classes

Plus en détail

Programmation Objet Java Correction

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

Plus en détail

Remote Method Invocation (RMI)

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

Plus en détail

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

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

Plus en détail

Programmation Orientée Objet avec JAVA

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

Plus en détail

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

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

Plus en détail

Chapitre 6 Héritage en Java

Chapitre 6 Héritage en Java Chapitre 6: Héritage 1/12 Chapitre 6 Héritage en Java Chapitre 6: Héritage 2/12 1. Généralités L'héritage est le troisième des paradigmes de la programmation orientée objet (le 1 er étant l'encapsulation,

Plus en détail

RMI le langage Java XII-1 JMF

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

Plus en détail

Introduction à la programmation orientée objets en JAVA

Introduction à la programmation orientée objets en JAVA Introduction à la programmation orientée objets en JAVA Olivier Sigaud Edition 2005-2006 Table des matières 1 Introduction 5 1.1 Vocation de ce document........................ 5 1.2 De la programmation

Plus en détail

EXAMEN DE JAVA 2010-2011

EXAMEN DE JAVA 2010-2011 NOM : PRÉNOM : TP : G TP EXAMEN DE JAVA 2010-2011 Consignes : avec documents, mais sans téléphone, ordinateur ou autre moyen de communication. Durée : 2h Recommandations : Le code doit être écrit en JAVA

Plus en détail

Correction langage Java

Correction langage Java MINISTÈRE DE L ÉCOLOGIE, DU DÉVELOPPEMENT DURABLE, DES TRANSPORTS ET DU LOGEMENT EXAMEN PROFESSIONNEL DE VÉRIFICATION D APTIDUDE AUX FONCTIONS DE PROGRAMMEUR Session 2010 Correction langage Java Langage:

Plus en détail

Tests unitaires avec Visual Studio

Tests unitaires avec Visual Studio Tests unitaires avec Visual Studio (source MSDN) Rappels (initiation aux tests unitaires SI6 Tp6) Les tests unitaires offrent aux développeurs une méthode rapide pour rechercher des erreurs de logique

Plus en détail

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

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

Plus en détail

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

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

Plus en détail

Une classe est une sorte de type de données définie par le programmeur Variables peuvent être de type classe

Une classe est une sorte de type de données définie par le programmeur Variables peuvent être de type classe Classe, Objet Variables locales Niveaux de visibilité (Encapsulation) Attributs et Méthodes Statiques Surcharge des Méthodes Transmission des Paramètres Paquetage Classes pour les types de base POO 1 Une

Plus en détail

Utiliser Java sans BlueJ

Utiliser Java sans BlueJ Conception objet en Java avec BlueJ une approche interactive Utiliser Java sans BlueJ Michael Kölling version française: Patrice Moreaux Rédigé avec 1.0 Conception objet en Java avec BlueJ une approche

Plus en détail

Arbres binaires de recherche

Arbres binaires de recherche 1 arbre des comparaisons 2 recherche dichotomique l'arbre est recalculé à chaque recherche 2 5 3 4 7 9 1 6 1 2 3 4 5 6 7 9 10 conserver la structure d'arbre au lieu de la reconstruire arbre binaire de

Plus en détail

Université Mohammed Premier Année universitaire 2011-2012. Correction de l examen écrit de la session ordinaire 18 Février 2012

Université Mohammed Premier Année universitaire 2011-2012. Correction de l examen écrit de la session ordinaire 18 Février 2012 Université Mohammed Premier Année universitaire 2011-2012 Faculté des Sciences Filière SMI Département de Mathématiques Module : POO Java et d Informatique Semestre : S5 Correction de l examen écrit de

Plus en détail

Listes et arbres binaires

Listes et arbres binaires Des structures de données dynamiques Listes, Listes ordonnées Arbres binaires, arbre binaires de recherche Listes chaînées Utile si le nombre d éléments n est pas connu à l avance et évolue beaucoup. Permet

Plus en détail

Lecture de variable automate en utilisant le service web de l ETZ (application J2SE)

Lecture de variable automate en utilisant le service web de l ETZ (application J2SE) Lecture de variable automate en utilisant le service web de l ETZ (application J2SE) Sommaire 1. Objectifs...2 2. Création d un nouveau projet J2SE...2 3. Intégration du client Web Service...5 3.1. Description

Plus en détail

Premiers Pas en Programmation Objet : les Classes et les Objets

Premiers Pas en Programmation Objet : les Classes et les Objets Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.

Plus en détail

ED : Construction d'interfaces graphiques en Java

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

Plus en détail

ÉCOLE POLYTECHNIQUE DE MONTRÉAL DÉPARTEMENT DE GÉNIE INFORMATIQUE

ÉCOLE POLYTECHNIQUE DE MONTRÉAL DÉPARTEMENT DE GÉNIE INFORMATIQUE ÉCOLE POLYTECHNIQUE DE MONTRÉAL DÉPARTEMENT DE GÉNIE INFORMATIQUE LOG2410 Conception logicielle Solutionnaire examen final Automne 2008 Documentation : Aucune Calculatrice : Aucune Date : 13 décembre 2008

Plus en détail

Cours 1: Java et les objets

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

Plus en détail

2. Comprendre les définitions de classes

2. Comprendre les définitions de classes Conception objet en Java avec BlueJ une approche interactive 2. Comprendre les définitions de classes Analyser le contenu des classes David J. Barnes, Michael Kölling version française: Patrice Moreaux

Plus en détail

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

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

Plus en détail

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011 Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr Université de Provence 9 février 2011 Arnaud Labourel (Université de Provence) Exclusion Mutuelle 9 février 2011 1 / 53 Contexte Epistémologique

Plus en détail

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

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

Plus en détail

Tests unitaires avec JUnit

Tests unitaires avec JUnit Tests unitaires avec JUnit Olivier Mangez Cross Systems o.mangez@cross-systems.com Les tests unitaires : menés par les développeurs au niveau de la classe, de la méthode ils répondent à la question : «est-ce

Plus en détail

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

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

Plus en détail

6.1 Une classe simple pour représenter des comptes bancaires

6.1 Une classe simple pour représenter des comptes bancaires Chapitre 6 Héritage Ce chapitre du cours traite de concepts relatifs à la programmation objet (hiérarchie de classe, héritage, extension, masquage) et sera illustré par un exemple de représentation de

Plus en détail

Polymorphisme. Programmation Orientée Objet. Jean-Christophe Routier Licence mention Informatique Université Lille 1

Polymorphisme. Programmation Orientée Objet. Jean-Christophe Routier Licence mention Informatique Université Lille 1 Polymorphisme Programmation Orientée Objet Jean-Christophe Routier Licence mention Informatique Université Lille 1 Université Lille 1 - Licence Informatique Programmation Orientée Objet 1 des méthodes

Plus en détail

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

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

Plus en détail

Flux de données Lecture/Ecriture Fichiers

Flux de données Lecture/Ecriture Fichiers Flux de données Lecture/Ecriture Fichiers 1 Un flux de données est un objet qui représente une suite d octets d un programme pour une certaine destination ou issus d une source pour un programme flux d

Plus en détail

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

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

Plus en détail

INITIATION AU LANGAGE JAVA

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

Plus en détail

Chapitre 4. Le modèle de composants : les services

Chapitre 4. Le modèle de composants : les services Chapitre 4 Le modèle de composants : les services 1 Les services "A Service is an application component that can perform long-running operations in the background and does not provide a user interface."

Plus en détail

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

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

Plus en détail

Base de programmation Objet en JAVA. 3ème partie.

Base de programmation Objet en JAVA. 3ème partie. Base de programmation Objet en JAVA. 3ème partie. Frédéric Vernier (Université Paris-Sud / LRI / LIMSI-CNRS) Frederic.Vernier,@limsi.fr Ce cours reprend en grande partie le matériel pédagogique mis au

Plus en détail

Cours de Programmation Orientée Objet

Cours de Programmation Orientée Objet Contrat et application à la librairie standard JAVA mailto:marc.champesme@lipn.univ-paris13.fr 6 février 2011 1 Qu est ce qu une classe? Un exemple en JAVA Résumé Expression du contrat Par des commentaires

Plus en détail

Informatique TP1 : Découverte de Python CPP 1A

Informatique TP1 : Découverte de Python CPP 1A Informatique TP1 : Découverte de Python CPP 1A Romain Casati, Wafa Johal, Frederic Devernay, Matthieu Moy Avril - juin 2014 1 Découverte de l IDE : IDLE IDLE est un environnement de développement (Integrated

Plus en détail

Rappels Java. V.Marangozova-Martin. 1 Classes, instanciation, objets, main

Rappels Java. V.Marangozova-Martin. 1 Classes, instanciation, objets, main Rappels Java V.Marangozova-Martin 1 Classes, instanciation, objets, main Java est un langage pour la programmation orientée-objet (POO). La programmation par objets permet de structurer les programmes

Plus en détail

Programmation par les Objets en Java

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

Plus en détail

Modélisation Objet. Introduction à JAVA. Georges Linares IUP GMI Université d Avignon et des Pays de Vaucluse

Modélisation Objet. Introduction à JAVA. Georges Linares IUP GMI Université d Avignon et des Pays de Vaucluse Modélisation Objet Introduction à JAVA Historique Les langages objets Simula 67 (trop tôt) Smalltalk 80 : purement objet Objective C : extension du C, esprit Smalltalk C++ : extension du c; le plus utilisé

Plus en détail

Java RMI. Programmation des applications réparties. Olivier Flauzac URCA. Master EEAMI-Informatique première année

Java RMI. Programmation des applications réparties. Olivier Flauzac URCA. Master EEAMI-Informatique première année Java RMI Programmation des applications réparties Olivier Flauzac URCA Master EEAMI-Informatique première année Olivier Flauzac (URCA) PAR : Java RMI MSTIC-INFO 1 1 / 30 1 RMI 2 Architecture 3 Développement

Plus en détail

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

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

Plus en détail

Projet. Coloration lexicale et indentation de code Java

Projet. Coloration lexicale et indentation de code Java Université Paris Diderot Programmation Orientée Objet L3 Année 2011-2012 Projet Coloration lexicale et indentation de code Java Le but de ce projet est de développer un programme qui prend en entrée un

Plus en détail

M2 FMIN305 - Novembre 2010 CORBA

M2 FMIN305 - Novembre 2010 CORBA FMIN05 - Novembre 0 Ce TD est très largement inspiré de ceux de Gilles Roussel. Vous trouverez beaucoup de choses intéressantes ici : http://www-igm.univ-mlv.fr/ roussel. 1 Horloge distante On souhaite

Plus en détail

Java Licence Professionnelle CISII, 2009-10

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

Plus en détail

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée forax at univ-mlv dot fr - ParisJUG Java.next() - Mars 2012 What Else? Lambda == Inner class? Java a des lambdas depuis la version 1.1 Exemple utilisant

Plus en détail

Algorithmique et initiation à la programmation java

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

Plus en détail

Corrigé des exercices sur les références

Corrigé des exercices sur les références Corrigé des exercices sur les références Exercice 3.1.1 dessin Pour cet exercice, vous allez dessiner des structures de données au moyen de petits schémas analogues à ceux du cours, comportant la pile

Plus en détail

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

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

Plus en détail

NFP 121. Java et les Threads. Présentation : Thierry Escalarasse Mai 2007

NFP 121. Java et les Threads. Présentation : Thierry Escalarasse Mai 2007 NFP 121 Java et les Threads Présentation : Thierry Escalarasse Mai 2007 Plan du cour Présentation de la notion de Threads La classe Thread L interface Runnable Les états d un thread La Synchronisation

Plus en détail

Cours 1 : Introduction Générale + Objet

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

Plus en détail

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

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

Plus en détail

Environnements de développement (intégrés)

Environnements de développement (intégrés) Environnements de développement (intégrés) JDT (débogage), outils d analyse statique Patrick Labatut labatut@di.ens.fr http://www.di.ens.fr/~labatut/ Département d informatique École normale supérieure

Plus en détail

Mise à niveau en Java

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

Plus en détail

Programmation. orientée aspect pour Java/J2EE. Renaud Pawlak. Jean-Philippe Retaillé. Lionel Seinturier. Groupe Eyrolles, 2004, ISBN : 2-212-11408-7

Programmation. orientée aspect pour Java/J2EE. Renaud Pawlak. Jean-Philippe Retaillé. Lionel Seinturier. Groupe Eyrolles, 2004, ISBN : 2-212-11408-7 Programmation orientée aspect pour Java/J2EE Renaud Pawlak Jean-Philippe Retaillé Lionel Seinturier Groupe Eyrolles, 2004, ISBN : 2-212-11408-7 9 Qualité de service des applications et POA La puissance

Plus en détail

F. Barthélemy. 17 mai 2005

F. Barthélemy. 17 mai 2005 Typage de la généricité en Java F. Barthélemy 17 mai 2005 1 Le shéma général La g én éricit é en Java est un ajout r éalis é sur un langage existant depuis d éjà une dizaine d ann ées, avec des contraintes

Plus en détail

Les entrées/sorties Java (sérialisation, accès aux chiers et connexion réseau)

Les entrées/sorties Java (sérialisation, accès aux chiers et connexion réseau) Année 2008-2009 Les entrées/sorties Java (sérialisation, accès aux chiers et connexion réseau) Nicolas Baudru mél : nicolas.baudru@esil.univmed.fr page web : nicolas.baudru.perso.esil.univmed.fr 1 Introduction

Plus en détail