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)

Programmation Orientée Objet. Exceptions et assertions

Programmation Orientée Objet. Exceptions et assertions Programmation Orientée Objet Exceptions et assertions Julien Provillard http://www.i3s.unice.fr/~provilla/poo/ julien.provillard@unice.fr Robustesse et Exceptions Error, RuntimeException Exceptions (non)

Plus en détail

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

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

Plus en détail

Programmer avec les exceptions en Java

Programmer avec les exceptions en Java Programmer avec les exceptions en Java Premier Cycle Cours Eurinsa 2002 (c) P.Pollet 05/12/2002 Java 2001 (PP) 1 Plan Gestion traditionnelle des erreurs d exécution Qu est-ce qu une exception? La classe

Plus en détail

Exceptions. Fiabilité d un logiciel. Fiabilité en Java. Erreurs/exceptions. Localisation du traitement des erreurs/exceptions.

Exceptions. Fiabilité d un logiciel. Fiabilité en Java. Erreurs/exceptions. Localisation du traitement des erreurs/exceptions. Fiabilité d un logiciel Exceptions Université Française d Egypte Version O 5.7 5/10/15 Richard Grin Robustesse : fonctionne correctement, même en présence d événements exceptionnels Correction : donne

Plus en détail

Les exceptions en java

Les exceptions en java 1/12 Les exceptions en java 2/12 C'est quoi une exception? Une exception est un événement (une erreur) qui se produit lors de l'exécution d'un programme, et qui va provoquer un fonctionnement anormal (par

Plus en détail

DUT Informatique Module JAVA Apprentis Département Informatique 2008 / 2009. Travaux Pratiques n o 2 : JUnit

DUT Informatique Module JAVA Apprentis Département Informatique 2008 / 2009. Travaux Pratiques n o 2 : JUnit iut ORSAY DUT Informatique Département Informatique 2008 / 2009 Travaux Pratiques n o 2 : JUnit Nom(s) : Groupe : Date : Objectifs : Apprendre à vérifier une implantation à l aide de tests unitaires sous

Plus en détail

La Gestion des Exceptions

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

Plus en détail

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

Cours JAVA : La fiabilité en Java

Cours JAVA : La fiabilité en Java Cours JAVA : La fiabilité en Java Version 1.02 Julien Sopena 1 1 julien.sopena@lip6.fr Équipe REGAL - INRIA Rocquencourt LIP6 - Université Pierre et Marie Curie Licence professionnelle DANT - 2015/2016

Plus en détail

POO LES EXCEPTIONS LES EXCEPTIONS

POO LES EXCEPTIONS LES EXCEPTIONS CHAPITRE 7 : LES EXCEPTIONS Objectifs spécifiques 1. Introduire la notion d exception, les règles d utilisation et de définition des exceptions. 2. Distinguer entre les exceptions prédéfinies et les exceptions

Plus en détail

Le mécanisme d exception du langage Java

Le mécanisme d exception du langage Java Le mécanisme d exception du langage Java 1 / 39 Plan 1 Introduction aux exceptions en Java 2 Exemples de code avec gestion des exceptions 3 Créer ses propres exceptions 4 Instruction try/catch/finally

Plus en détail

cours 4 : programmes fiables

cours 4 : programmes fiables cours 4 : programmes fiables généricité assertions généricité généricité généricité généricité possibilité d écrire des classes paramétrées par d autres classes permet de : écrire un code dépendant d un/de

Plus en détail

Erreurs d'exécution (1/3)

Erreurs d'exécution (1/3) Erreurs d'exécution (1/3) Dans tout programme, il peut y avoir des erreurs d'exécution non critiques Exemple : le programme est en train de lire un fichier et il y a un problème d'accès au disque dur.

Plus en détail

Informatique / Programmation

Informatique / Programmation Informatique / Programmation Programmation orientée objet avec Java 06 : Les exceptions et leur traitement Jacques Bapst jacques.bapst@hefr.ch Exceptions Les exceptions représentent des événements qui

Plus en détail

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

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

Plus en détail

Gestion d exceptions

Gestion d exceptions Gestion d exceptions Quelques classes remarquables de JAVA Emmanuel ADAM Institut des Sciences et Techniques de Valenciennes Université de Valenciennes et du Hainaut-Cambrésis source principale : «Thinking

Plus en détail

Programmation orientée objet TP 1 Prise en main de l environnement Java

Programmation orientée objet TP 1 Prise en main de l environnement Java Programmation orientée objet TP 1 L2 MPCIE Prise en main de l environnement Java Exercice 1 Nous désirons développer un programme pour la gestion (très simplifiée) d'un parc de véhicules destinés à la

Plus en détail

JUnit 3.8 / JUnit 4. P. Grafion / Junit v1.4 1

JUnit 3.8 / JUnit 4. P. Grafion / Junit v1.4 1 JUnit 3.8 / JUnit 4 P. Grafion / Junit v1.4 1 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

Chapitre 7. Exceptions

Chapitre 7. Exceptions Chapitre 7 Exceptions 1 Exceptions en Java Séparation exécution normale/gestion des erreurs Inspiration : C++ et Ada Un composant peut : prendre en charge le problème signaler le problème en levant une

Plus en détail

Solutions du chapitre 14

Solutions du chapitre 14 Solutions du chapitre 14 Traitement des exceptions 14.16 Sous quelles circonstances utiliseriez-vous l instruction suivante? catch ( Exception e ) { throw e; } Cette instruction sert à capturer toute exception

Plus en détail

Année 2008-2009. Les exceptions Java. Nicolas Baudru mél : nicolas.baudru@esil.univmed.fr page web : nicolas.baudru.perso.esil.univmed.

Année 2008-2009. Les exceptions Java. Nicolas Baudru mél : nicolas.baudru@esil.univmed.fr page web : nicolas.baudru.perso.esil.univmed. Année 2008-2009 Les exceptions Java Nicolas Baudru mél : nicolas.baudru@esil.univmed.fr page web : nicolas.baudru.perso.esil.univmed.fr 1 Introduction Supposez que vous écrivez un programme qui accède

Plus en détail

Objectifs du cours: Gestion des exceptions. CSI1502 Principes fondamentaux en conception des logiciels. Prise en charge d`exception en Java

Objectifs du cours: Gestion des exceptions. CSI1502 Principes fondamentaux en conception des logiciels. Prise en charge d`exception en Java CSI1502 Principes fondamentaux en conception des logiciels Chapter 8: Gestion des exceptions Objectifs du cours: Gestion des exceptions Comprendre ce qui suit: Le fonctionnement de «try-catch» Propagation

Plus en détail

Série 9: Intérêt des fonctions, portée des variables, variables statiques Buts

Série 9: Intérêt des fonctions, portée des variables, variables statiques Buts Série 9: Intérêt des fonctions, portée des variables, variables statiques Buts - La notion de fonction est fondamentale car elle permet d'atteindre deux objectifs: principe d'abstraction: offrir une vue

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

Examen 1 ère session 2012-2013 page 1 NFA 031 - Programmation JAVA Formation CNAM

Examen 1 ère session 2012-2013 page 1 NFA 031 - Programmation JAVA Formation CNAM Examen 1 ère session 2012-2013 page 1 NFA 031 - Programmation JAVA IPST-CNAM Programmation JAVA NFA 001 Mercredi 13 Février 2013 Avec document Durée : 2 h30 Enseignant : LAFORGUE Jacques 1 ère Session

Plus en détail

Exceptions. Qu est ce qu un cas exceptionnel? Principe : détecter le maximum d erreurs à la compilation, mais... pas toujours possible

Exceptions. Qu est ce qu un cas exceptionnel? Principe : détecter le maximum d erreurs à la compilation, mais... pas toujours possible Programmation Orientée Objet Jean-Christophe Routier Licence mention Informatique Université Lille Principe : détecter le maximum d erreurs à la compilation, mais pas toujours possible Gestion des erreurs

Plus en détail

Objets Avancées Semestre 3 Année 2015-2016. Projet

Objets Avancées Semestre 3 Année 2015-2016. Projet Conception et Programmation IUT d Aix-Marseille Dép. INFO Aix Objets Avancées Semestre 3 Année 2015-2016 Projet André Abramé - andre.abrame@univ-amu.fr Sophie Nabitz - sophie.nabitz@univ-avignon.fr Petru

Plus en détail

Cours 3 : Encapsulation et tests

Cours 3 : Encapsulation et tests DUT Informatique S3 - Programmation Java Jean-Claude MARTIN MARTIN@LIMSI.fr Cours 3 : Encapsulation et tests Plan Divers Paquetages : intérêt, utilisation des packages existants, créer un package Encapsulation

Plus en détail

Université Joseph Fourier UFR IMA Module Système. TP Systèmes n 1 Programmation concurrente

Université Joseph Fourier UFR IMA Module Système. TP Systèmes n 1 Programmation concurrente TP Systèmes n 1 Programmation concurrente Titre Simulation du comportement de processus producteurs et de processus consommateurs avec tampon intermédiaire borné. Organisation Binôme Durée de réalisation

Plus en détail

Programmation Orientée Objet Java

Programmation Orientée Objet Java Programmation Orientée Objet Java Bertrand Estellon Département Informatique et Interactions Aix-Marseille Université 29 octobre 2015 Bertrand Estellon (DII AMU) Programmation Orientée Objet Java 29 octobre

Plus en détail

GL / C++ Chapitre 7. Lien Dynamique Méthodes Virtuelles

GL / C++ Chapitre 7. Lien Dynamique Méthodes Virtuelles GL / C++ Chapitre 7 Lien Dynamique Méthodes Virtuelles 1. Pointeur sur un objet d'une classe dérivée Considérons les classes écrites précédemment : Personne Etudiant // dérive de personne Salarie // dérive

Plus en détail

2. lancer (throw) une exception consiste à la signaler

2. lancer (throw) une exception consiste à la signaler Cours 7 Exceptions 1 1. Une exception est un signal qui indique que quelque chose d'exceptionnel (par exemple une erreur) s est produite qui interrompt le flot d exécution normal du programme 2. lancer

Plus en détail

L3 Info & Miage. TP-Projet SGF

L3 Info & Miage. TP-Projet SGF TP-Projet SGF 1. Introduction L objectif de ce mini-projet est de réaliser un Système de Gestion de Fichiers simplifié capable de gérer des accès à des fichiers séquentiels de type flot. L idée est ici

Plus en détail

Analyse lexicale 2014-2015

Analyse lexicale 2014-2015 Analyse (lexicale, syntaxique) L3 MIAGE Analyse lexicale Université de Lille, France 2014-2015 1 Rappels Rôle de l analyse lexicale Outils 2 Mise en oeuvre Lexème Vers l analyseur syntaxique Codage d un

Plus en détail

Jérôme Bougeault. Tsoft & Groupe Eyrolles, 2003, ISBN 2-212-11352-8

Jérôme Bougeault. Tsoft & Groupe Eyrolles, 2003, ISBN 2-212-11352-8 Jérôme Bougeault Tsoft & Groupe Eyrolles, 2003, ISBN 2-212-11352-8 Principe des exceptions dans Java La hiérarchie des exceptions Propagation des exceptions Les exceptions métier Atelier Objectifs Le mécanisme

Plus en détail

Plan. Conseils de Programmation. Types et Classes. Exemple: fraction. Méthodes. Variables locales:

Plan. Conseils de Programmation. Types et Classes. Exemple: fraction. Méthodes. Variables locales: Plan Conseils de Programmation Joël Quinqueton Dépt MIAp, UFR IV UPV Université Montpellier III Types et classes Un exemple de classe Les erreurs en Java L héritage en Java Types primitifs Tableaux Classes:

Plus en détail

TP de Java Exceptions et E/S. catch (IOException ioe) { System.out.println(" E/S problem :" + ioe);

TP de Java Exceptions et E/S. catch (IOException ioe) { System.out.println( E/S problem : + ioe); TP de Java Exceptions et E/S Sujets abordés dans ce TP : Bloc try/catch/finally Déclenchement d exception Redéfinition d exception Taxonomie des exceptions Gestion de fichiers Tokenizer 1) Les erreurs

Plus en détail

ENSEIRB. Rapport du Projet POO. Equipe FFGB : FRESNAIS Marie GRIMAUD Pierre LUCAZEAU Claire MARIN Jean-Baptiste PINSOLLE Cédric

ENSEIRB. Rapport du Projet POO. Equipe FFGB : FRESNAIS Marie GRIMAUD Pierre LUCAZEAU Claire MARIN Jean-Baptiste PINSOLLE Cédric ENSEIRB Rapport du Projet POO Equipe FFGB : FRESNAIS Marie GRIMAUD Pierre LUCAZEAU Claire MARIN Jean-Baptiste PINSOLLE Cédric Enseignant : M. Eyrolles RSI7 Année scolaire : 2009/2010 Sommaire 1. Lever

Plus en détail

Java Avancé. Les exceptions. Rémi Forax forax@univ-mlv.fr

Java Avancé. Les exceptions. Rémi Forax forax@univ-mlv.fr Java Avancé Les exceptions Rémi Forax forax@univ-mlv.fr 1 Les Exceptions Mécanisme qui permet de reporter des erreurs vers les méthodes appelantes. Problème en C : prévoir une plage de valeurs dans la

Plus en détail

TP JUnit 4.12. Première partie Le premier test d'une classe

TP JUnit 4.12. Première partie Le premier test d'une classe TP JUnit 4.12 Récupérez les deux fichiers junit.jar et hamcrest-core.jar à partir de l'url https://github.com/junit-team/junit/wiki/download-and-install (plus précisément à partir de l'url http://junit.org).

Plus en détail

this Vs. static Introduction Utilisation de this

this Vs. static Introduction Utilisation de this Introduction this Vs. static Si vous avez essayé d écrire d importants programmes Java multi-classes, vous avez certainement eu des problème de communication entre plusieurs classes. Pour appeler à partir

Plus en détail

module SIN21 Rendre un syste me communicant Analyse UML et algorithmie 1 Modification du cahier des charges

module SIN21 Rendre un syste me communicant Analyse UML et algorithmie 1 Modification du cahier des charges Module SIN221 Rendre un syste me communicant Analyse UML et algorithmie Objectifs : Modifier des diagrammes UML suite à la modification du cahier des charges. Caractériser et valider une classe en C++.

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

Université Mohammed Premier Année universitaire 2012-2013

Université Mohammed Premier Année universitaire 2012-2013 Université Mohammed Premier Année universitaire 2012-2013 Faculté des Sciences Filière SMI Département de Mathématiques Module : POO Java et d Informatique Semestre : S5 Responsable du cours : El Mostafa

Plus en détail

Université de Bourgogne - UFR Sciences et Technique - Programmation objet - LPSIL - 2013

Université de Bourgogne - UFR Sciences et Technique - Programmation objet - LPSIL - 2013 Nom : Prénom : Contrôle continu n 4 Programmation objet Vous devez répondre dans les cadres aux questions posées. Documents de cours et notes personnelles autorisés. Téléphones portables, ordinateurs et

Plus en détail

CHAPITRE 3 : Types de base, Opérateurs et Expressions

CHAPITRE 3 : Types de base, Opérateurs et Expressions CHAPITRE 3 : Types de base, Opérateurs et Expressions 1. Types simples Un type définit l'ensemble des valeurs que peut prendre une variable, le nombre d'octets à réserver en mémoire et les opérateurs que

Plus en détail

Procédures et fonctions

Procédures et fonctions Chapitre 5 Procédures et fonctions 5.1 Introduction Considérons le programme suivant, dont le but est d inverser les éléments d un tableau : public class InversionTableau1 { int t[]= {8, 2, 1, 23; Terminal.ecrireStringln("Tableau

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

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

1 ère PARTIE : COURS (sans document) Durée: 1h15

1 ère PARTIE : COURS (sans document) Durée: 1h15 Examen 1 ère session 2012-2013 page 1 NFA 032 - Programmation JAVA IPST-CNAM Programmation JAVA NFA 032 Mercredi 25 Juin 2014 Avec document Durée : 2 h30 Enseignant : LAFORGUE Jacques 1 ère Session NFA

Plus en détail

Créer une simple application Java avec ECLIPSE. Par Ahcène BOUNCEUR

Créer une simple application Java avec ECLIPSE. Par Ahcène BOUNCEUR Créer une simple application Java avec ECLIPSE Par Ahcène BOUNCEUR Janvier 2005 INTRODUCTION Dans cet exemple nous allons vous montrer comment peut-on créer une simple application Java en utilisant l IDE

Plus en détail

Abstraction: introduction. Abstraction et liaison dans les langages de programmation. Abstraction: principe. Abstraction: terminologie. N.

Abstraction: introduction. Abstraction et liaison dans les langages de programmation. Abstraction: principe. Abstraction: terminologie. N. Abstraction et liaison dans les langages de programmation LIN2: Paradigmes de programmation N. Hameurlain Abstraction: introduction L'importance de l abstraction découle de sa capacité de cacher les détails

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

Pour cet examen, vous disposez de la classe Voiture, incomplète, qui suit :

Pour cet examen, vous disposez de la classe Voiture, incomplète, qui suit : UNIVERSITÉ DE MONTRÉAL FACULTÉ DES ARTS ET DES SCIENCES DIRECTION DE L ENSEIGNEMENT DE SERVICE EN INFORMATIQUE COURS : IFT 1170 EXAMEN INTRA DATE : 4 juin 2009 CHARGÉ DE COURS : Michel Reid DURÉE : 2 heures

Plus en détail

Gestion des exceptions

Gestion des exceptions Noël Macé Formateur et Consultant indépendant expert Unix et FOSS http://www.noelmace.com Structures de contrôle Gestion des exceptions Licence Creative Commons Ce(tte) œuvre est mise à disposition selon

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

Série 3.1- Morane Gruenpeter. Method Summary

Série 3.1- Morane Gruenpeter. Method Summary NFA019 : Série 3.1- Morane Gruenpeter a. La série 3.1 consiste à créer une classe ES qui gère les entrées et les sorties en utilisant les exceptions. La zone de capture qui peut soulever une exception--

Plus en détail

Static. static. USTL http://www.lifl.fr/ routier 1

Static. static. USTL http://www.lifl.fr/ routier 1 Static static USTL http://www.lifl.fr/ routier 1 Static 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

Plus en détail

TP n 5 - Correction. IUP2 Année 2004-2005

TP n 5 - Correction. IUP2 Année 2004-2005 Université Paris 7 Programmation objet IUP2 Année 2004-2005 TP n 5 - Correction Héritage Exercice 1 Le cas d école modifié 1. Ecrivez une classe Figure. Cette classe a des attributs privés abcisse et ordonnée,

Plus en détail

ERRATA - MAGASIN VIRTUEL

ERRATA - MAGASIN VIRTUEL ERRATA - MAGASIN VIRTUEL 1 28 juillet 2005 Entre mars et juillet 2005, un certain nombre d'articles sont parus sur [http://tahe.developpez.com]. Ils avaient pour but de présenter le framework Spring aussi

Plus en détail

Module B9-1 : sensibilisation à l UML

Module B9-1 : sensibilisation à l UML Module B9-1 : sensibilisation à l UML Olivier Habart : habart.olivier@gmail.com ENSTA B9-1 UML (Olivier Habart) Septembre 14 Diapositive N 1 Session 2 : Vue statique Sommaire Diagramme de classes Diagrammes

Plus en détail

C.P.G.E - Meknès Langage Python 3 Haouati Abdelali

C.P.G.E - Meknès Langage Python 3 Haouati Abdelali 3. Langage Python 3 2 a. Introduction Présentation du langage Python : Python est un langage portable, dynamique, extensible, gratuit, qui permet (sans l imposer) une approche modulaire et orientée objet

Plus en détail

3 Lien entre pointeurs et tableaux.

3 Lien entre pointeurs et tableaux. programme sont dit dynamiques. On se limite ici aux tableaux statiques à une seule dimension, analogue aux vecteurs manipulés en mathématiques. Ils se déclarent sous la forme : type_d_élément variable_tableau[taille];

Plus en détail

«Anatomie» d une application web Servlets - JDBC

«Anatomie» d une application web Servlets - JDBC «Anatomie» d une application web Servlets - JDBC Patrick REIGNIER - Philippe GENOUDUJF Février 2005 1 L application histogramme de notes HistoServlet HistoServlet HistogramModel HistogramModel (objet (objet

Plus en détail

I21 Algorithmique et programmation II. David Gross-Amblard, Joël Savelli IEM-uB 2008-2009 - GFDL 1.2 CM 5/8 v2

I21 Algorithmique et programmation II. David Gross-Amblard, Joël Savelli IEM-uB 2008-2009 - GFDL 1.2 CM 5/8 v2 I21 Algorithmique et programmation II David Gross-Amblard, Joël Savelli IEM-uB 2008-2009 - GFDL 1.2 CM 5/8 v2 II. Programmation par objet 1. Motivation 2. Encapsulation 3. Héritage 4. Initiation à la modélisation

Plus en détail

Tests d'acceptation avec FitNesse

Tests d'acceptation avec FitNesse Tests d'acceptation avec FitNesse Bruno Mermet 2010 ébauche Plan Présentation générale de FitNesse Langage de marquage : référence Types de table Slim : référence Présentation générale de FitNesse Tests

Plus en détail

Construction et destruction des objets de vie des objets Objets composites Tableaux d'objets Copie (Initialisation et affectation) des objets

Construction et destruction des objets de vie des objets Objets composites Tableaux d'objets Copie (Initialisation et affectation) des objets Construction et destruction des objets Durée de vie des objets Objets composites Tableaux d'objets Copie (Initialisation et affectation) des objets Initialisation des objets Constructeur par recopieinit

Plus en détail

Programmation Java Avancée

Programmation Java Avancée Programmation Java Avancée Module RPCI01 Département R&T IUT de Villetaneuse 2 novembre 2015 Département R&T Programmation Java Avancée 2 novembre 2015 1 / 74 Plan du cours 1 La gestion des exceptions

Plus en détail

renforcer le contrôle de type :

renforcer le contrôle de type : renforcer le contrôle de type : définitions, prototypes de fonctions surcharge références conversions de void * préférer le compilateur au préprocesseur considérer les entrées/sorties opérations abstraites

Plus en détail

La programmation Impérative par le Langage C

La programmation Impérative par le Langage C La programmation Impérative par le Langage C 1. Introduction 1.1 Qu est-ce que la programmation impérative? Un programme est constitué de plusieurs lignes d instructions. Chaque instruction permet d effectuer

Plus en détail

IFT 1020 Programmation II

IFT 1020 Programmation II Département d informatique et de recherche opérationnelle Été 2005 IFT 1020 Programmation II Etienne Bergeron 7 juillet 2005 1 Explications générales Travail pratique #4 Technique de recherche, Entrées/Sorties

Plus en détail

Claude Kaiser Machine virtuelle et environnement utilisateur SRI_B CHAPITRE 1

Claude Kaiser Machine virtuelle et environnement utilisateur SRI_B CHAPITRE 1 CHAPITRE 1 FOURNIR À L'UTILISATEUR UNE MACHINE VIRTUELLE ET UN ENVIRONNEMENT D'EXÉCUTION DE PROGRAMMES Plan ENVIRONNEMENT DE TRAVAIL ADAPTÉ AU BESOIN DE L'UTILISATEUR Fonctions de l'environnement d'exécution

Plus en détail

Bertrand Meyer. UConception et programmation orientées objet. T r a d u i t d e l a n g l a i s p a r P i e r r e J o u v e l o t

Bertrand Meyer. UConception et programmation orientées objet. T r a d u i t d e l a n g l a i s p a r P i e r r e J o u v e l o t UConception et programmation orientées objet Bertrand Meyer T r a d u i t d e l a n g l a i s p a r P i e r r e J o u v e l o t Groupe Eyrolles, 2000, pour le texte de la présente édition en langue française.

Plus en détail

Premiers exemples de traitements

Premiers exemples de traitements #include #include Premiers exemples de traitements void main() float b(0.0); float c(0.0); float delta(0.0); cin >> b >> c; delta = b*b - 4*c; if (delta < 0.0) cout

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

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

ENSTA IN204 Introduction à JAVA

ENSTA IN204 Introduction à JAVA Ecole Nationale Supérieure de Techniques Avancées (ENSTA) -http://www.ensta.fr ENSTA IN204 Introduction à JAVA Olivier Sigaud LIP6/AnimatLab olivier.sigaud@lip6.fr 01.44.27.88.53 Ce document est mis à

Plus en détail

FORMATION VB.NET Visual Studio 2008

FORMATION VB.NET Visual Studio 2008 FORMATION VB.NET Visual Studio 2008 Livret 1 Introduction à Visuàl Studio Thierry TILLIER http://www.coursdinfo.fr Ce support de cours est réservé à un usage personnel. Toute utilisation et diffusion dans

Plus en détail

Introduction au Logiciel GAMS (General Algebraic Modeling System)

Introduction au Logiciel GAMS (General Algebraic Modeling System) Introduction au Logiciel GAMS (General Algebraic Modeling System) J.-M. Reneaume SOMMAIRE A. INTRODUCTION... 1 B. DESCRIPTION DU MODELE... 3 1. Structure générale du modèle... 3 a) Structure du fichier

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

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

Les exceptions en Java

Les exceptions en Java Chapitre 6 Les exceptions en Java Lorsqu on conçoit un programme, on essaie évidemment qu il soit correct, c est-à-dire qu il fonctionne parfaitement dans les conditions prévues de son utilisation. L utilisateur

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

Cours 8 : Exceptions, un peu de graphique

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

Plus en détail

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

Bibliographie. Java Modeling Language. Java. Java. Java. Documents références sur JML : Compilation : Langage de programmation orientée Objet

Bibliographie. Java Modeling Language. Java. Java. Java. Documents références sur JML : Compilation : Langage de programmation orientée Objet Bibliographie Documents références sur JML : http://www.eecs.ucf.edu/~leavens/jml/ Java Modeling Language http://kalysto.org/~nono/teaching/jml/ Benoit Darties http://www2.lifl.fr/~nebut/ens/svl/ ESIREM

Plus en détail

NFA032 Programmation objet avec Java

NFA032 Programmation objet avec Java NFA032 Programmation objet avec Java CNAM-Paris-Île-de-France Première session 2013 (sujet bis) Documents et calculatrice interdits. Le barème est donné à titre indicatif. Exercice 1 : programmation objet

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

ENSTA : cours IN204 Introduction à JAVA et UML

ENSTA : cours IN204 Introduction à JAVA et UML ENSTA : cours IN204 Introduction à JAVA et UML Thierry Bommart DASSAULT AVIATION DGT/DPR/EOS thierry.bommart@dassault-aviation.fr 01.47.11.54.93 Page : 1 Plan Ecole Nationale Supérieure de Techniques Avancées

Plus en détail

file:///d:/wd/ens/in413/0708/les_tp/tp6_reseau/index.html TP6 Thèmes du TP : Serveurs de type "sessions"

file:///d:/wd/ens/in413/0708/les_tp/tp6_reseau/index.html TP6 Thèmes du TP : Serveurs de type sessions 1 sur 8 12/10/2007 15:50 TP6 Thèmes du TP : Serveurs de type "sessions" Architecture web et déploiement : une introduction httpunit : première utilisation Préambule : Les classes de tests unitaires présentes

Plus en détail

Programmation objet en Java.

Programmation objet en Java. Programmation objet en Java. Didier Rémy 2001-2002 http://cristal.inria.fr/ remy/mot/7/ http://www.enseignement.polytechnique.fr/profs/informatique/didier.remy/mot/7/ Cours Exercices Slide 1 1. Classes,

Plus en détail

SPRING WEBFLOW Cours JEE - Master 2 Université de Marne-la-Vallée 1 dimanche 14 novembre 2010

SPRING WEBFLOW Cours JEE - Master 2 Université de Marne-la-Vallée 1 dimanche 14 novembre 2010 SPRING WEBFLOW 1 RAPPEL D ARCHITECTURE Persistance des données 2 PROBLÉMATIQUE Comment faire le lien entre mes vues graphiques et ma logique métier en respectant les contraintes (maintenance, coût & temps

Plus en détail

Héritage Concepts généraux des classes dérivées. Les concepts de base de la POO Application en C++ Héritage Concepts généraux des classes dérivées

Héritage Concepts généraux des classes dérivées. Les concepts de base de la POO Application en C++ Héritage Concepts généraux des classes dérivées Les concepts de base de la POO Application en C++ Classes abstraites Possibilité de définir de nouveaux objets à partir des objets existants Hiérarchie de généralisation/ spécialisation Une classe descendante

Plus en détail

introduction à la conception Orientée Objet

introduction à la conception Orientée Objet 1 introduction à la conception Orientée Objet IUP GEII 2ème année marcel@univ-tours.fr http://www.blois.univ-tours.fr/ marcel 2 plan cours 1. motivations génie logiciel 2. concepts et techniques orientés

Plus en détail

nulles dans un langage à objets

nulles dans un langage à objets Prévention de déréférencement de références nulles dans un langage à objets Jean-Sébastien Gélinas, Étienne M. Gagnon, Jean Privat Université du Québec à Montréal Langages et Modèles à Objets Nancy 27

Plus en détail

Introduction au langage python

Introduction au langage python Introduction au langage python Gauthier Picard SMA/G2I/ENS Mines Saint-Etienne gauthierpicard@emsefr Introduction au langage python Gauthier Picard 1 / 36 Sommaire 1 Les bases de Python 2 Fonctions et

Plus en détail

Python langage de programmation

Python langage de programmation Initiation à la programmation avec Python langage de programmation Valérie Bellynck (2009), d après un diaporama d Alain Bozzi (2008), lui-même venant de celui de Bob Cordeau (2008) 1 Langage de Programmation

Plus en détail

ENSTA : cours IN204 Introduction à JAVA

ENSTA : cours IN204 Introduction à JAVA Ecole Nationale Supérieure de Techniques Avancées (ENSTA) -http://www.ensta.fr ENSTA : cours IN204 Introduction à JAVA Olivier Sigaud LIP6/AnimatLab olivier.sigaud@lip6.fr 01.44.27.88.53 Page : 1 Plan

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

Déclaration et Implémentation d'une classe

Déclaration et Implémentation d'une classe Définir et Instancier une classe en Java Déclaration et Implémentation d'une classe En algorithmique (comme en C++ la plupart du temps), l'écriture du corps des méthodes (implémentation) se fait après

Plus en détail