Programmation Orientée Objet. Exceptions et assertions
|
|
- Hervé Milot
- il y a 8 ans
- Total affichages :
Transcription
1 Programmation Orientée Objet Exceptions et assertions Julien Provillard
2 Robustesse et Exceptions Error, RuntimeException Exceptions (non) contrôlées try catch, finally, ressources Correction et Assertions Mot clé assert Objectifs 2
3 Correction Fiabilité d un programme Donne un résultat correct lorsqu il fonctionne en mode "normal" Les assertions permettent de vérifier qu on est dans un mode "normal" Robustesse Fonctionne même lorsque l environnement ne respecte pas le contrat (données erronées, état inconsistant) Les exceptions permettent de gérer des anomalies lors de l exécution et de rétablir un environnement stable ou de sortir proprement du programme. 3
4 EXCEPTIONS Représentent des évènements anormaux du système 4
5 Les exceptions sont des objets La classe Exception représente des évènements anormaux (qui ne doivent pas se produire lors d une exécution normale). Il faut décrire le fonctionnement normal du programme dans un bloc try Prévoir (éventuellement) des situations anormales dans un/des bloc(s) catch Réagir à ces situations anormales pour pallier aux erreurs éventuelles (normalement exceptionnelles/rares) de l environnement On peut lever/lancer les exceptions (instances) throw uneexception; Permet de séparer la détection d une anomalie de son traitement Provoque une rupture du flot d exécution 5
6 NumberFormatException: try/catch On peut attraper les exceptions pour détecter une erreur class Somme { static public void main(string[] args) { int somme = 0; for(string arg : args) { try { somme += Integer.parseInt(arg); catch (NumberFormatException e) { try: Fonctionnement normal System.err.println(arg + " n est pas un nombre!"); System.out.println("Somme = " + somme); catch: Fonctionnement exceptionnel en cas d erreur Test : java Somme 12 pasunnombre 14 pasunnombre n est pas un nombre! Somme = 26 6
7 try { // fonctionnement normal catch (XXXException e) { // cas si XXXException se produit catch (YYYException e) { // cas si YYYException se produit Programmation orientée objet Synopsis: try catch Attention: On ne peut pas attraper une exception qui ne peut pas être lancée! (erreur de compilation) XXXException peut être une sous-classe de YYYException YYYException ne peut pas être une sous-classe de XXXException Les exceptions levées en dehors de try (avant, dans le catch, après) ne sont pas attrapées 7
8 Une méthode peut décider Traitement des exceptions D attraper les exceptions lancées et les traiter De propager les exceptions Il faut le déclarer dans la signature de la méthode selon la nature Ex: FileReader(String pathname) throws FileNotFoundException D attraper et les relancer ou d en lancer d autres (à déclarer) Propagation C est la méthode appelante qui la récupère La méthode main peut aussi propager des exceptions 8
9 Dans un bloc try Traitement des exceptions Le code entre l instruction qui a levée l exception et la fin du bloc try n est pas exécuté Le premier bloc catch compatible est exécuté L exécution se poursuit normalement après le dernier bloc catch! 9
10 Traitement des exceptions Pas d exception levée : Si aucune exception n est levée dans le bloc try Alors les blocs catch sont ignorés L exécution se poursuit normalement après le dernier bloc catch 10
11 Exception pas attrapée Traitement des exceptions Certaines exceptions ne sont pas obligatoirement attrapées (RuntimeException) Le message porté par l exception est affiché Le Thread dans lequel l exception a été lancée meurt Les autres continuent leur exécution Dans la méthode main La méthode main peut aussi propager les exceptions! 11
12 java.lang.throwable Toutes les exceptions sont de type Throwable Throwable Error Exception RuntimeException XXXException YYYException 12
13 java.lang.throwable Toutes les exceptions sont de type Throwable Erreurs graves JVM Throwable Error Exception RuntimeException XXXException YYYException 13
14 Réservées aux erreurs de la JVM OutOfMemoryError NoSuchMethodError Recommandations Error Ne devraient pas arriver Très rare qu on les attrape Ne devraient pas être lancées par les utilisateurs Pas de raison de faire des classes filles 14
15 java.lang.throwable Toutes les exceptions sont de type Throwable Throwable Error Exception Exceptions noncontrôlées par le compilateur try/catch optionnel RuntimeException XXXException YYYException 15
16 Usage RuntimeException A priori si l on pense que le problème ne pourra pas être résolu (dans un catch) Pour ne pas forcer à alourdir le code Quelques RuntimeException NullPointerException ArrayIndexOutOfBoundsException NumberFormatException ClassCastException 16
17 java.lang.throwable Toutes les exceptions sont de type Throwable Throwable Exceptions contrôlées => try/catch obligatoire Error Exception RuntimeException XXXException YYYException 17
18 Définition Doivent être Soit attrapées (try/catch) Soit propagées (throws dans la signature) Contaminant vers la méthode appelante Exceptions contrôlées Attention Peut avoir un throws sans lancer l exception Peut propager plusieurs exceptions dans un throws Ne peut pas avoir un catch si l exception ne peut pas être lancée Quelques exceptions contrôlées ClassNotFoundException IOException (toutes celles de java.io) EOFException FileNotFoundException InterruptedException 18
19 Lancer une exception L utilisateur peut lancer des exceptions Soit en utilisant les classes prédéfinies Soit en définissant de nouvelles classes qui héritent de RuntimeException ou de Exception Peut avoir à instancier un nouvel objet Exemple: class Validate { public static void notnull(object obj) { if (obj == null) throw new NullPointerException("The object must not be null"); 19
20 Exemple: CompteBancaire Le crédit d un montant négatif n est pas prévu class CompteBancaire { int solde = 0; void crediter(int somme) { if (somme < 0) throw new IllegalArgumentException("somme négative illégale!"); solde += somme; Note: IllegalArgumentException est une RuntimeException 20
21 Définir ses propres exceptions Exception non-contrôlée class DecouvertException extends RuntimeException { CompteBancaire compte; DecouvertException(CompteBancaire c) { super("découvert non autorisé sur " + c); this.compte = c; Usage class CompteBancaire { int solde = 0; void debiter(int somme) { if (somme > solde) throw new DécouvertException(this); solde -= somme; 21
22 Exceptions et redéfinition Quand on redéfinit une méthode, on ne peut pas déclarer plus d exceptions contrôlées que la méthode redéfinie Il faut renvoyer : les mêmes exceptions Ou des sous-classes de ces exceptions Ou moins d exceptions (éventuellement aucune) 22
23 Exceptions dans les constructeurs Si une exception est levée dans un constructeur Et qu elle n est pas attrapée par le constructeur Alors aucune instance n est créée 23
24 Définir ses propres exceptions Exception contrôlée class DecouvertException extends Exception { CompteBancaire compte; DecouvertException(CompteBancaire c) { super("découvert non autorisé sur " + c); this.compte = c; Usage class CompteBancaire { int solde = 0; void debiter(int somme) throws DecouvertException { if (somme > solde) throw new DecouvertException(this); solde -= somme; 24
25 Exceptions vs tests Exemple : Tentative d ouverture d un fichier public static FileReader openfile(string path) { try { return new FileReader(path); catch (FileNotFoundException ex) { return null; // cas réellement exceptionnel? On gère une exception que l on aurait pu prévoir. Le chemin existe-t-il? Désigne-t-il un fichier? Celui-ci est-il accessible? Attraper une exception a un coût élevé, il ne faut pas se baser sur les exceptions pour gérer des cas prévisibles. 25
26 Exceptions vs tests Exemple : Tentative d ouverture d un fichier public static FileReader openfile(string path) { File file = new File(path); FileReader reader = null; if (file.exists() && file.isfile() && file.canread()) { try { reader = new FileReader(file); catch (FileNotFoundException ex) { // Vraiment un cas exceptionnel! return reader; 26
27 LES ASSERTIONS Pré et post-conditions 27
28 Depuis le JDK 1.4 Mot clé assert assert boolean_expression; assert boolean_expression : "message d erreur"; Permet de s assurer qu une propriété est vraie Si l expression booléenne est vraie, rien ne se passe Sinon, une AssertionError est lancée Usage Pré-condition: au début d une méthode Post-condition: à la fin d une méthode Invariant: au milieu d un code compliqué (boucle) 28
29 Exemple: CompteBancaire Le crédit d un montant négatif n est pas prévu class CompteBancaire { int solde = 0; void crediter(int somme) { assert somme >= 0 : "somme négative illégale :" + somme; solde += somme; Note: En général, ce sera garanti par l environnement d appel (interface graphique, application principale, ) 29
30 Activation Lors de l exécution Activation Si on n active pas (comportement pas défaut), alors le code est ignoré Si on active, cela peut produire des exceptions Test vs. Production Pendant les tests, les assertions sont activées En production, les assertions sont normalement désactivées 30
31 Pour activer les assertions java ea Activation Pour activer pour un paquetage ou une classe java ea:<nom-paquetage>... java ea:<nom-classe> Pour désactiver pour un paquetage ou une classe java ea da:<nom-paquetage>... java ea da:<nom-classe> 31
32 Assertions ou exceptions? Les exceptions doivent être utilisées Pour vérifier la correction des paramètres des méthodes publiques Lorsqu une situation exceptionnelle se produit Pour gérer ces situations exceptionnelles Les assertions doivent être utilisées Pour les pré et post-conditions et les invariants de boucles des méthodes privées (sauf si une exception doit être remontée à la méthode appelante) Pour vérifier qu une propriété attendue est vraie De manière générale, les exceptions assurent la robustesse du code tandis que les assertions vérifient sa correction (une AssertionError devrait indiquer une erreur de programmation) 32
33 Assertions ou exceptions? Exception contrôlée class DecouvertException extends Exception { CompteBancaire compte; DecouvertException(CompteBancaire c) { super("découvert non autorisé sur " + c); this.compte = c; Usage class CompteBancaire { int solde = 0; void debiter(int somme) throws DecouvertException { assert somme >= 0 : "somme négative illégale :" + somme; if (somme > solde) throw new DécouvertException(this); solde -= somme; Assertion : l environnement d appel est sensé vérifier que toutes les sommes manipulées sont positives Exception : l appel de méthode est valide mais entraîne une situation exceptionnelle 33
34 COMPLÉMENTS SUR LES EXCEPTIONS 34
35 try { // fonctionnement normal catch (XXXException e) { // cas si XXXException se produit catch (YYYException e) { // cas si YYYException se produit Que faire si les deux blocs sont identiques pour éviter la duplication du code? Multi-catch (JDK 7.0) Solution n 1 : Attraper un ancêtre commun de XXXException et YYYException try { // fonctionnement normal catch (Exception e) { /* cas si XXXException ou * YYYException se produit */ Mauvaise pratique, on attrape désormais toutes les exceptions! 35
36 try { // fonctionnement normal catch (XXXException e) { // cas si XXXException se produit catch (YYYException e) { // cas si YYYException se produit Que faire si les deux blocs sont identiques pour éviter la duplication du code? Multi-catch (JDK 7.0) Solution n 2 : Factoriser dans une méthode try { // fonctionnement normal catch (XXXException e) { somemethod(...); catch (YYYException e) { somemethod(...); Fastidieux, il peut être nécessaire de passer beaucoup d informations à la méthode. 36
37 Multi-catch (JDK 7.0) try { // fonctionnement normal catch (XXXException YYYException e) { // cas si XXXException ou YYYException se produit Attention: e est final XXXException : pas un sous-type de YYYException YYYException : pas un sous-type de XXXException 37
38 Propager les exceptions Il ne faut pas attraper les exceptions trop vite Choisir le niveau le mieux adapté pour retrouver un état «normal» On attrape que si l on est sûr de ne pas avoir un état dégradé après Il est possible d attraper une exception pour rétablir partiellement l état du système avant de la relancer au niveau supérieure. Au plus près de la cause de l exception Les blocs try et catch sont des blocs d instructions Les variables déclarées dans ces blocs meurent à la fin du bloc try et catch sont deux blocs séparés! Le bloc catch ne connaît pas les variables déclarées dans le bloc try 38
39 Throwable.printStackTrace() La méthode printstacktrace Affiche l état de la pile au moment de l exception C est-à-dire la liste des méthodes qui ont conduit à l exception (avec le numéro de ligne) Voir aussi Throwable.printStackTrace(PrintWriter) java.io.filenotfoundexception:..\reference.txt.cs (Le fichier spécifié est introuvable) at java.io.fileinputstream.open(native Method) at java.io.fileinputstream.<init>(unknown Source) at java.util.scanner.<init>(unknown Source) at fr.unice.cesar.barchart.init(barchart.java:36) at sun.applet.appletpanel.run(unknown Source) at java.lang.thread.run(unknown Source) printstacktrace peut exposer des informations sensibles! 39
40 Synopsis: try[-catch]-finally try { // fonctionnement normal catch (XXXException e) { // cas si XXXException se produit finally { // le mot de la fin (dans tous les cas) Bloc finally: Exécuté dans tous les cas qu il y ait eu ou non une exception Même s il y avait un return dans le try et/ou catch finally est exécuté Après le try, après le catch Avant de passer la main à la méthode appelante 40
41 finally vs. try/catch finally est prioritaire sur ce qui se passe dans try et catch Si une exception est levée dans finally alors le return du try et du catch ne se produisent pas Si finally contient un return alors les exceptions propagées dans le try ou catch ne sont pas lancées Si finally ne fait ni return ni throw alors l exception ou la valeur renvoyée dans le try/catch sont prises en compte! Convention: Il faut éviter cette situation 41
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étailAuto-évaluation Programmation en Java
Auto-évaluation Programmation en Java Document: f0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION PROGRAMMATION EN
Plus en détailExceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;
CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe
Plus en détailCorrigé 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étailCours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr
. Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le
Plus en détailBases du langage. Historique Applications et applets Éléments de base du langage Classes et objets Les exceptions
Langage JAVA Bases du langage Opérations sur les fichiers Réseau Multi-tâche Logiciel: interfaces... Gestion des périphériques (méthodes natives) Accès aux bases de données Bases du langage Historique
Plus en détailUn ordonnanceur stupide
Un ordonnanceur simple Université Paris Sud L objet des exercices qui suivent est de créer un ordonanceur implantant l algorithme du tourniquet ( round-robin scheduler ). La technique utilisée pour élire
Plus en détailProgrammation Réseau. Sécurité Java. Jean-Baptiste.Yunes@univ-paris-diderot.fr. UFR Informatique 2012-2013. jeudi 4 avril 13
Programmation Réseau Sécurité Java Jean-Baptiste.Yunes@univ-paris-diderot.fr UFR Informatique 2012-2013 Java Sécurité? différentes sécurités disponibles et contrôlables intégrité contrôle d accès signature/authentification/cryptographie
Plus en détailDéveloppement Logiciel
Développement Logiciel Éxamen session 1-2012-2013 (Vendedi 25 mai, 9h-11h) Seuls les documents liés directement au cours sont autorisés (comme dit sur le site) : sujets de TD, notes de cours, notes personnelles
Plus en détailRemote Method Invocation (RMI)
Remote Method Invocation (RMI) TP Réseau Université Paul Sabatier Master Informatique 1 ère Année Année 2006/2007 Plan Objectifs et Inconvénients de RMI Fonctionnement Définitions Architecture et principe
Plus en détailSynchro 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étailLOG4430 : Architecture logicielle et conception avancée
LOG4430 : Architecture logicielle et conception avancée Yann-Gaël Guéhéneuc Cours 3 Bibliothèques et chargement Dynamique de composants Département de génie informatique et de génie logiciel École Polytechnique
Plus en détailEncapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.
Encapsulation L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. La visibilité dépend des membres : certains membres peuvent être visibles et d'autres
Plus en détailPour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère
L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la
Plus en détailFacultés Universitaires Notre-Dame de la Paix. Conception et Programmation Orientées- Object
Facultés Universitaires Notre-Dame de la Paix Conception et Programmation Orientées- Object 2008-2009 RÉSUMÉ PRATIQUE... 4 CLASSE OBJET... 4 NOTION D HÉRITAGE... 4 LE POLYMORPHISME... 5 LES CLASSES ABSTRAITES...
Plus en détailRemote Method Invocation Les classes implémentant Serializable
Parallélisme Architecture Eric Goubault Commissariat à l Energie Atomique Saclay Classe qui implémente la méthode distante (serveur): - dont les méthodes renvoient un objet serializable - ou plus généralement
Plus en détailIntroduction : les processus. Introduction : les threads. Plan
IN328 Programmation distribuée avec Java et J2EE 2 - Threads en Java Introduction : les processus Un processus est un ensemble d instructions à exécuter, un espace mémoire réservé et éventuellement d autres
Plus en détailLa gestion des exceptions
La gestion des exceptions Même lorsqu un programme est au point, certaines circonstances exceptionnelles peuvent compromettre la poursuite de son exécution ; il peut s agir par exemple de données incorrectes
Plus en détailJava 1.5 : principales nouveautés
Cours 6 - TEP - UPMC - 2008/2009 p. 1/34 Java 1.5 : principales nouveautés classes paramétrées : generics encapsulation des valeurs de types primitifs : auto[un]boxing itération sur les boucles types énumérés
Plus en détailCalcul Parallèle. Cours 5 - JAVA RMI
Calcul Parallèle Cours 5 - JAVA RMI Eric Goubault Commissariat à l Energie Atomique & Chaire Ecole Polytechnique/Thalès Saclay Le 28 février 2012 Eric Goubault 1 28 février 2012 Remote Method Invocation
Plus en détailLangage et Concepts de ProgrammationOrientée-Objet 1 / 40
Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr
Plus en détailProgrammation Par Objets
Programmation Par Objets Structures de données package java.util B. Carré Polytech Lille 1 Tableaux et structures de données Tableaux «Objets» taille fixe type des éléments : primitif (homogène) ou objets
Plus en détailJava RMI. Arnaud Labourel Courriel: arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 8 mars 2011
Java RMI Arnaud Labourel Courriel: arnaud.labourel@lif.univ-mrs.fr Université de Provence 8 mars 2011 Arnaud Labourel (Université de Provence) Java RMI 8 mars 2011 1 / 58 Web services Services par le réseau
Plus en détailPour plus de détails concernant le protocole TCP conférez vous à la présentation des protocoles Internet enseignée pendant.
Chapitre 7 Le mode de communication en connexion est, a priori, supporté par le protocole TCP. Ce protocole fournit une communication fiable; les données sont transmises comme chaînes d octets. Avant de
Plus en détailIntroduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf
Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations
Plus en détailJava Licence Professionnelle CISII, 2009-10
Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation
Plus en détailINITIATION AU LANGAGE JAVA
INITIATION AU LANGAGE JAVA I. Présentation 1.1 Historique : Au début des années 90, Sun travaillait sur un projet visant à concevoir des logiciels simples et performants exécutés dans des PDA (Personnal
Plus en détailRMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.
RMI Remote Method Invocation: permet d'invoquer des méthodes d'objets distants. Méthode proche de RPC. Outils et classes qui rendent l'implantation d'appels de méthodes d'objets distants aussi simples
Plus en détailProgrammation Objet Java Correction
INSA - 4 AE 2007 2008 Durée : 1H00 Contrôle Programmation Objet Java Correction Consignes Tous les documents sont autorisés, mais ils seront peu utiles. Indiquez vos nom et prénom sur chaque feuille. Le
Plus en détailPlan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7
Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin
Plus en détailServeur 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étailP r ob lé m a t iq u e d e la g é n é r icit é. Pr in cip e d e la g é n é r icit é e n Ja v a ( 1 /3 )
P r ob lé m a t iq u e d e la g é n é r icit é les versions de Java antérieures à 1.5 permettaient de créer des classes de structures contenant n'importe quels types d'objet : les collections (classes
Plus en détailChapitre 10. Les interfaces Comparable et Comparator 1
Chapitre 10: Les interfaces Comparable et Comparator 1/5 Chapitre 10 Les interfaces Comparable et Comparator 1 1 Ce chapitre a été extrait du document "Objets, Algorithmes, Patterns" de [René Lalement],
Plus en détailLMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour
LMI 2 Programmation Orientée Objet POO - Cours 9 Said Jabbour jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Faculté des Sciences - Univ. Artois Février 2011 Les collections
Plus en détailPremiers 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étailJava - la plateforme
Java - la plateforme Java la plateforme Java? VM GC JIT Java Aujourd'hui 3 environnements d'exécutions différents Java ME (Micro Edition) pour PDA, téléphone Android (Java SE moins certain paquetages)
Plus en détailSupport de cours et TD Programmation Orientée Objet
REPUBLIQUE TUNISIENNE MINISTERE DE L ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE Institut Supérieur des Etudes Technologiques de Médenine Département Informatique Support de cours et TD Programmation
Plus en détailDis papa, c est quoi un bus logiciel réparti?
Dis papa, c est quoi un bus logiciel réparti? Raphael.Marvie@lifl.fr LIFL IRCICA Equipe GOAL Octobre 2006 10. Des sockets aux bus logiciels répartis 1 0. Une application répartie 2 Objectif Découvrir la
Plus en détailClasse Interne, Anonyme & Enumération
Java Avancé Classe Interne, Anonyme & Enumération Rémi Forax forax@univ-mlv.fr 1 Rappel Nous nous intéressons aujourd'hui à deux formes de type abstrait en Java Les interfaces Les classes abstraites Les
Plus en détailDerrière toi Une machine virtuelle!
Derrière toi Une machine virtuelle! Yann-Gaël Guéhéneuc guehene@emn.fr École des Mines de Nantes, France Object Technology International Inc., Canada D où ça vient? Calculatrice Machine de Turing 1936
Plus en détailUtiliser 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étailF. 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étailStructure d un programme et Compilation Notions de classe et d objet Syntaxe
Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types
Plus en détailInfo0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java
Info0604 Programmation multi-threadée Cours 5 Programmation multi-threadée en Java Pierre Delisle Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique 18 février 2015 Plan
Plus en détailCréation d une application JEE
Création d une application JEE Rédacteurs : Alexandre Baillif, Philippe Lacomme, Raksmey Phan et Michaël PLAN Date : juillet 2010 Mise à jour : Michaël PLAN Date : octobre 2014 Avertissement : - ce document
Plus en détailProgrammation Objet 2
Programmation Objet 2 2éme partie Didier FERMENT http://www.u-picardie.fr/ferment Université de Picardie Jules Verne 2013-14 Après avoir étudié : Nous allons aborder : 4 techniques Les exceptions Les types
Plus en détailPROGRAMMATION PAR OBJETS
PROGRAMMATION PAR OBJETS Java Environnement et constructions spécifiques Walter Rudametkin Maître de Conférences Bureau F011 Walter.Rudametkin@polytech-lille.fr B. Carré Polytech Lille 2 Java (Sun 1995)
Plus en détailet se trouve popularisé rapidement pour ses possibilités de développement liés au Web. Les
Chapitre 3 Java, langage de développement objet 3.1 Présentation de Java 3.1.1 Objectifs Le langage Java a été développé afin de pouvoir générer des applications qui soient indépendantes des machines et
Plus en détailTP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface
Plus en détailJava Licence Professionnelle CISII, 2009-2010. Cours 2 : Classes et Objets
Licence Professionnelle CISII, 2009-2010 Cours 2 : Classes et Objets 1 Classes et Objets Objectifs des LOO : - Manipuler des objets - Découper les programmes suivant les types des objets manipulés - Regrouper
Plus en détailLOG4430 : Architecture logicielle et conception avancée
LOG4430 : Architecture logicielle et conception avancée Abdou Maiga Bibliothèques et le chargement de composantes dynamiques Département de génie informatique et de génie logiciel École Polytechnique de
Plus en détail1 Définition d une classe en Java
Université Montpellier-II UFR des Sciences - Département Informatique Licence Informatique - Ingénierie Logicielle - Concepts et Outils de la modélisation et du développement de logiciel par et pour la
Plus en détailFlux 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étailAPI04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture
API04 Contribution Apache Hadoop: Présentation et application dans le domaine des Data Warehouses Introduction Cette publication a pour but de présenter le framework Java libre Apache Hadoop, permettant
Plus en détailInitiation à la programmation orientée-objet avec le langage Java
Initiation à la programmation orientée-objet avec le langage Java Pôle Informatique 2013-2014 158 cours Fauriel 42023 Saint-Étienne Cedex 02 Gauthier Picard gauthier.picard@emse.fr Institut Henri Fayol,
Plus en détailThreads. Threads. USTL http://www.lifl.fr/ routier 1
Threads USTL http://www.lifl.fr/ routier 1 Rappels - Définitions un Process est un programme qui tourne et dispose de ses propres ressources mémoire. OS multi-tâche plusieurs process en concurrence un
Plus en détailHéritage presque multiple en Java (1/2)
Héritage presque multiple en Java (1/2) Utiliser deux classes ou plus dans la définition d'une nouvelle classe peut se faire par composition. class Etudiant{ int numero; Diplome d; float passeexamen(examen
Plus en détailProgramme Compte bancaire (code)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; Programme Compte bancaire (code) namespace compte_bancaire /// Classe Program public
Plus en détailLangage à objets : JAVA (1)
DEUST Systèmes d information et Réseaux, Gestion et réalisation 1 ère année Langage à objets : JAVA (1) 2013-2014 1 INTRODUCTION... 3 Langages compilés et interprétés... 3 Java, compilé et interprété...
Plus en détailJAVA. Introduction à la programmation objet avec java 1/4. Nadir BOUSSOUKAIA
JAVA Introduction à la programmation objet avec java 1/4 Nadir BOUSSOUKAIA v1.04 SOMMAIRE Caractéristiques de java (40mn) Eléments du langage (40mn) Les core API java (20mn) 2 Partie 1 Caractéristiques
Plus en détailInitiation à 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étailNotion de thread (1/2)
Notion de thread (1/2) La machine virtuelle java (JVM) permet d'exécuter plusieurs traitements en parallèle (en pratique, ils s'exécutent par tranche et en alternance sur le processeur). Ces traitements
Plus en détailUne introduction à Java
Une introduction à Java IFT 287 (Semaine 1) UNIVERSITÉ DE SHERBROOKE 1 Java - Historique Développé par Sun Microsystems en 1994 Inventeur James Gosling (canadien!) Objectif langage sûr (fortement typé)
Plus en détailExclusion 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étailJava Licence Professionnelle CISII, 2009-2010
Licence Professionnelle CISII, 2009-2010 Cours 1 : Introduction à Java A. Belaïd abelaid@loria.fr Cours disponible sur le site : http://www.loria.fr/~abelaid puis Teaching 1 Fonctionnement 12 séances :
Plus en détailCorrigés des premiers exercices sur les classes
Corrigés des premiers exercices sur les classes Exercice 2.1.1 utilisation d une classe Voici le texte d une classe représentant de façon sommaire un compte bancaire et les opérations bancaires courantes.
Plus en détailCours 1: Java et les objets
Ressources Les interface homme-machine et le langage Java DUT première année Henri Garreta, Faculté des Sciences (Luminy) Cyril Pain-Barre & Sébastien Nedjar, IUT d Aix-Marseille (Aix) Cours 1: infodoc.iut.univ-aix.fr/~ihm/
Plus en détailCommunication inter-processus (IPC) : tubes & sockets. exemples en C et en Java. F. Butelle
F. Butelle, E. Viennet, Système GTR2 IUT Paris 3 Communication inter-processus (IPC) : tubes & sockets exemples en C et en Java F. Butelle F. Butelle, E. Viennet, Système GTR2 IUT Paris 3 Java : implémentation
Plus en détailLangage Java. Classe de première SI
Langage Java Table des matières 1. Premiers pas...2 1.1. Introduction...2 1.2. Mon premier programme...2 1.3. Les commentaires...2 2. Les variables et les opérateurs...2 3. La classe Scanner...3 4. Les
Plus en détailLangage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2
Langage et Concepts de Programmation Objet Travaux Dirigés no2 Pôle Informatique École Nationale Supérieure des Mines de St-Etienne Vous trouverez plus de détails sur les concepts abordés lors de ce TD
Plus en détailPage 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étailINF 321 : mémento de la syntaxe de Java
INF 321 : mémento de la syntaxe de Java Table des matières 1 La structure générale d un programme 3 2 Les composants élémentaires de Java 3 2.1 Les identificateurs.................................. 3 2.2
Plus en détailIntroduction au langage de programmation Java
Introduction au langage de programmation Java Christian Bac, Denis Conan CSC 4002 Octobre 2014 Revision : 996 Introduction au langage de programmation Java Sommaire du cours 1 Introduction à Java.............................................................
Plus en détailEnvironnements 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étailTraitement de données
Traitement de données Présentation du module TINI Présentation du module : Le module Tini se décline en plusieurs versions, il est constitué d une carte d application et d un module processeur : Les modules
Plus en détailTP1 : Initiation à Java et Eclipse
TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les
Plus en détailProgrammation par les Objets en Java
Programmation par les Objets en Java Najib TOUNSI Les classes en Java (TD 3) I. Notion de classe I.1 Classe, champs, méthodes, instanciation, this, private vs. public. Créer une classe Point (coordonnée
Plus en détailTP, première séquence d exercices.
TP, première séquence d exercices. Benoît Valiron benoit.valiron@lipn.univ-paris13.fr 7 novembre 2010 Introduction Vous écrirez les réponses aux questions courtes sur une feuille à rendre à la fin de la
Plus en détailLambda! 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étailTD/TP PAC - Programmation n 3
Université Paris Sud Licence d informatique/iup-miage2 - Année 2004-2005 auteur : Frédéric Vernier semaine : 11-16 octobre 2004 conditions : sur machine avec les outils standards java web: http://vernier.frederic.free.fr/indexpac.html
Plus en détailTP Programmation Java / JDBC / Oracle
TP Programmation Java / JDBC / Oracle 1. Connectivité avec une base de données Oracle au travers de l interface JDBC L interface de programmation (API) JDBC (Java DataBase Connectivity) est une librairie
Plus en détailIntroduction au langage Java
Introduction au langage Java 1 Introduction : Langage développé par Sun et purement orienté objet. N a pas de rapport direct avec Javascript développé par Netscape. Les applications java peuvent être des
Plus en détailLa JVM. La machine virtuelle Java. La JVM. La JVM
La machine virtuelle Java Historique et rappels Organisation mémoire de la JVM Le garbage collector Le bytecode, la machine à pile. Les threads Suivi, tracé, optimisation d un programme Java JVM embarquées
Plus en détailRMI le langage Java XII-1 JMF
Remote Method Invocation (RMI) XII-1 Introduction RMI est un ensemble de classes permettant de manipuler des objets sur des machines distantes (objets distants) de manière similaire aux objets sur la machine
Plus en détailObjets et Programmation. origine des langages orientés-objet
Objets et Programmation origine des langages orientés-objet modularité, encapsulation objets, classes, messages exemples en Java héritage, liaison dynamique G. Falquet, Th. Estier CUI Université de Genève
Plus en détailGestion distribuée (par sockets) de banque en Java
Gestion distribuée (par sockets) de banque en Java Université Paris Sud Rappel sur la solution locale de gestion simple de banque L objet de cet exercice était de créer une application java qui implante
Plus en détailTD/TP PAC - Programmation n 3
Université Paris Sud Licence d informatique/iup-miage2 Année 2004-2005 Auteur : Frédéric Vernier Semaine : 11-16 octobre 2004 Conditions : sur machine avec les outils standards java web: http://vernier.frederic.free.fr/indexpac.html
Plus en détailALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET
ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET I. INTRODUCTION 1.1. HISTORIQUE 1991: Concepts Java pour Sun -conception d'un langage pour des appareils électroniques(code embarqué) -syntaxe proche du C++
Plus en détailRAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)
CLASSE RACINE Object ancêtre de toutes les classes RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION) définit donc des méthodes héritées par toutes
Plus en détail1. Langage de programmation Java
1. Langage de programmation Java 1.1. Définitions Langage de 3e génération le plus utilisé actuellement Portabilité : exécutable sur tout types d'ordinateurs quel que soit le système d'exploitation (Windows,
Plus en détailLe Modèle de Sécurité dans JAVA
Le Modèle de Sécurité dans JAVA $Id : javasecurity.lyx 1565 2008-10-22 13 :57 :30Z phil $ 22 octobre 2008 Université de Cergy-Pontoise, 2 rue A. Chauvin 95302 Cergy-Pontoise cedex e-mail laroque@u-cergy.fr
Plus en détailRemote Method Invocation en Java (RMI)
Remote Method Invocation en Java (RMI) Modélisation et construction des applications réparties (Module M-4102C) J. Christian Attiogbé Fevrier 2015 J. Christian Attiogbé (Fevrier 2015) Remote Method Invocation
Plus en détailas Architecture des Systèmes d Information
Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes
Plus en détailSHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5
SHERLOCK 7 Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 Cette note montre comment intégrer un script Java dans une investigation Sherlock et les différents aspects de Java script. S T E M M E R I M A G I N
Plus en détailDesktop Intégration. Rémi Forax
Desktop Intégration Rémi Forax 1 Intégration au bureau L intégration de l application au bureau de l utilisateur se fait en combinant plusieurs techniques L écran d annonce de l application (SplashScreen)
Plus en détailProgrammation Internet en Java
Chapitre 8 Programmation Internet en Java Vous avez déjà utilisé Internet, le plus connu des inter-réseaux mondiaux d ordinateurs et quelques-uns de ses services, en particulier le web et le courrier électronique.
Plus en détailTD3: tableaux avancées, première classe et chaînes
TD3: tableaux avancées, première classe et chaînes de caractères 1 Lestableaux 1.1 Élémentsthéoriques Déclaration des tableaux Pour la déclaration des tableaux, deux notations sont possibles. La première
Plus en détailEntrées / Sorties. Entrées / Sorties. Entrées/Sorties. System.out. Fonctionnement par flots (stream) Karima Boudaoud IUT- R&T. Terrain connu.
Entrées / Sorties Entrées/Sorties Fonctionnement par flots (stream) Karima Boudaoud IUT- R&T Karima Boudaoud IUT GTR-Sophia Antipolis 2 Terrain connu Entrées / Sorties la classe java.lang.system cette
Plus en détailPackage Java.util Classe générique
Package Java.util Classe générique 1 Classe Vector La taille est dynamique: dès qu un tableau vectoriel est plein, sa taille est doublée, triplée, etc. automatiquement Les cases sont de type Object add(object
Plus en détailTp 1 correction. Structures de données (IF2)
Tp 1 correction Structures de données (IF2) Remarque générale : compilez et exécutez le code au-fur-et-à mesure de son écriture. Il est plus facile de corriger une petite portion de code délimitée que
Plus en détail