Anne Tasso. 3 e édition Groupe Eyrolles, 2000, 2002, 2005, ISBN :

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

Download "Anne Tasso. 3 e édition Groupe Eyrolles, 2000, 2002, 2005, ISBN :"

Transcription

1 Anne Tasso 3 e édition 2005 Groupe Eyrolles, 2000, 2002, 2005, ISBN :

2 chapitre n 10 Collectionner un nombre indéterminé d objets Les dictionnaires Pour améliorer la recherche d éléments complexes dans une liste, la technique consiste à organiser les données, non plus par rapport à un indice, mais par rapport à une clé explicite. De cette façon, la recherche d un objet dans la liste s effectue, non plus sur l ensemble des données qui le composent, mais sur une clé unique qui lui est associée. L organisation de données, par association d une clé à un ensemble de données, est appelée un dictionnaire. Dans un dictionnaire, chaque définition est associée au mot qu elle définit et non pas à sa position (numérique) dans le dictionnaire. Manipulation d un dictionnaire Le type HashMap proposé par le langage Java permet de réaliser simplement l association cléélément. Les méthodes associées à ce type sont la création, la suppression, la consultation ou la modification d une association. Pour utiliser un dictionnaire, il est nécessaire de le déclarer de la façon suivante : HashMap listeclassée = new HashMap() ; Ainsi déclaré, listeclassée est un objet de type HashMap, sur lequel on peut appliquer des méthodes de la classe HashMap. Les méthodes les plus couramment utilisées sont décrites au tableau ci-après. Opération Place dans le dictionnaire l association clé objet. Retourne l objet associé à la clé spécifiée en paramètre. Supprime dans le dictionnaire l association clé objet à partir de la clé spécifiée en paramètre. Retourne le nombre d associations définies dans le dictionnaire. Fonction Java put(clé, objet) get(clé) remove(clé) size() Éditions Eyrolles 293

3 partie n 3 Outils et techniques orientés objet Exemple : créer un dictionnaire d étudiants Pour mieux comprendre l utilisation de tels objets, modifions le programme de gestion d une classe d étudiants de façon à organiser les données à partir d une clé définie par le programme. Définir une clé d association En supposant qu un étudiant soit totalement identifiable par son nom et son prénom, la clé d association des données est définie comme étant une chaîne de caractères majuscules, dont le premier caractère coïncide avec le premier caractère du prénom de l étudiant et dont les caractères suivants correspondent au nom de l étudiant. De cette façon, chaque clé est déterminée par programme, indépendamment de l utilisateur, en fonction des informations fournies par ce dernier. La traduction de cet algorithme en langage Java est la suivante : private String créeruneclé(etudiant e) { String tmp; tmp = (e.quelprénom()).charat(0) + e.quelnom(); return tmp.touppercase(); À partir des données d un étudiant e passées en paramètres, la méthode créeruneclé() retourne une chaîne de caractères majuscules (tmp.touppercase()), composée du premier caractère du prénom de l étudiant ((e.quelprénom()).charat(0)), suivi de son nom (e.quelnom()). Les données nom et prénom de la classe Etudiant sont privées. Il est donc nécessaire d utiliser les méthodes d accès en consultation quelprénom() et quelnom() pour connaître le contenu de ces données. Ces méthodes, à insérer dans le fichier Etudiant.java, sont décrites comme suit : public String quelnom() { return nom; public String quelprénom() { return prénom; La création d une clé peut également être réalisée simplement à partir des nom et prénom de l étudiant, stockés non pas dans un objet Etudiant, mais dans deux String distincts. Comment surcharger la méthode créeruneclé() de façon à traiter cette alternative? 294 Éditions Eyrolles

4 chapitre n 10 Collectionner un nombre indéterminé d objets La méthode est surchargée de la façon suivante : private String créeruneclé(string p, String n) { String tmp ; tmp = p.charat(0)+ n ; return tmp.touppercase(); Les deux méthodes créeruneclé() à insérer dans la classe Classe, sont déclarées en mode private car elles constituent un traitement interne propre au mode de stockage de l information. L application et l utilisateur n ont nullement besoin d en connaître l existence pour créer la liste des étudiants d une classe. Création du dictionnaire Pour créer le dictionnaire d une classe d étudiants, nous devons tout d abord définir un objet de type HashMap puis stocker dans cet objet les étudiants, en les associant à leur clé. Ces deux opérations sont réalisées dans le programme suivant : import java.util.* ; public class Classe { private HashMap listeclassée ; public Classe() { listeclassée = new HashMap(); public void ajouteunetudiant() { Etudiant nouveau = new Etudiant(); String clé = créeruneclé(nouveau) ; if (listeclassée.get(clé)== null) listeclassée.put(clé, nouveau) ; else System.out.println("Cet etudiant a deja ete saisi!") ; Ce programme est constitué des deux méthodes suivantes : Le constructeur Classe(), qui fait appel au constructeur de la classe HashMap afin de déterminer l adresse du premier élément de la listeclassée. ajouteunetudiant(), qui place un élément dans le dictionnaire grâce à la méthode put(clé, nouveau), qui ajoute l association clé-nouveau dans le dictionnaire listeclassée. L objet nouveau est de type Etudiant. Il est créé par l intermédiaire du constructeur Etudiant() et clé est aussi un objet de type String calculé à partir de la méthode créeruneclé(). Éditions Eyrolles 295

5 partie n 3 Outils et techniques orientés objet L ajout successif de deux associations ayant la même clé a pour résultat de détruire la première association. C est pourquoi il convient de tester, avant de placer le nouvel étudiant dans le dictionnaire, si ce dernier n est pas déjà défini dans la listeclassée. C est ce que réalise le test suivant : if (listeclassée.get(clé) == null) listeclassée.put(clé, nouveau) ; En effet, en testant le résultat de la méthode get(clé), le programme recherche dans le dictionnaire s il existe un étudiant associé à la clé calculée, correspondant à l étudiant que l on souhaite insérer dans la liste (nouveau). Si cette association n existe pas, l élément retourné par la méthode est null, et l interpréteur ajoute la nouvelle association clé nouveau dans le dictionnaire. Dans le cas contraire, le programme affiche un message précisant que l étudiant existe déjà. Rechercher et supprimer un élément du dictionnaire Une fois le dictionnaire réalisé, les opérations permettant la recherche ou la suppression d un étudiant sont décrites par les méthodes suivantes, à insérer dans le fichier Classe.java : public void rechercheunetudiant(string p, String n) { String clé = créeruneclé(p, n); Etudiant eclassé = (Etudiant) listeclassée.get(clé); if (eclassé!= null) eclassé.afficheunetudiant(); else System.out.println(p + " " + n + " est inconnu! "); public void supprimeunetudiant(string p, String n) { String clé = créeruneclé(p, n); Etudiant eclassé = (Etudiant) listeclassée.get(clé); if (eclassé!= null) { listeclassée.remove(clé); System.out.println(p + " " + n + " a ete supprime "); else System.out.println(p + " " + n + " est inconnu! "); Ces méthodes fonctionnent toutes deux sur le même modèle. Les nom et prénom de l étudiant à traiter sont fournis en paramètres des méthodes afin de calculer la clé d association. Ensuite, l étudiant est recherché dans la liste à partir de cette clé (get(clé)). S il est trouvé, il est soit affiché (eclassé.afficheunetudiant(), pour la méthode rechercheunetudiant()), soit supprimé (listeclassée.remove(clé)), pour la méthode supprimeunetudiant()). 296 Éditions Eyrolles

6 chapitre n 10 Collectionner un nombre indéterminé d objets Afficher un dictionnaire Pour afficher tous les éléments d un dictionnaire, nous devons le parcourir élément par élément. Il existe différentes techniques pour réaliser ce parcours. Nous vous en proposons une, qui utilise un outil du langage Java, défini par la classe Collection. Une collection est un outil du package java.util, qui facilite le parcours de listes de données, quelles qu elles soient. Ainsi, le parcours dans une collection d objets s effectue par l intermédiaire d un objet de type Iterator que l on applique à la collection. La classe Iterator contient les méthodes hasnext() et next(). La première méthode détermine s il existe encore des éléments dans la collection sur laquelle est appliquée l itérateur ; la seconde permet l accès à l élément suivant dans la collection. La méthode affichelesetudiants() utilise cette technique pour réaliser le parcours de la listeclassée. public void affichelesetudiants() { if(listeclassée.size()!= 0){ Collection c = listeclassée.values(); for(iterator i = c.iterator() ; i.hasnext();) { Etudiant e = (Etudiant) i.next(); e.afficheunetudiant(); else System.out.println("Il n y a pas d etudiant dans cette liste") ; La collection est initialisée grâce à la méthode values() de la classe HashMap, qui renvoie sous forme de collection la liste des associations clé-valeur effectivement stockées. Le parcours de cette collection est ensuite réalisé à l aide d une boucle for et d un itérateur associé à la collection (Iterator i = c.iterator()). La boucle vérifie s il existe encore des clés dans la liste (i.hasnext()). Si tel est le cas, le programme passe à l élément suivant dans la liste (i.next()) et l affiche (e.afficheunetudiant()). Les types génériques Les types génériques ont été mis en place avec la nouvelle version du compilateur pour offrir en premier lieu la possibilité de décrire des comportements identiques, indépendamment du type de données. L apport des «génériques» permet également de rendre le code plus robuste et simplifie grandement la programmation. Notre objectif n est pas ici de décrire toutes les fonctionnalités des types génériques, mais d examiner comment ces derniers simplifient la manipulation des collections d objets (ArrayList et HashMap) et permettent d éviter les erreurs lors de l exécution des applications manipulant des collections de données. Éditions Eyrolles 297

7 partie n 3 Outils et techniques orientés objet Attention, pour les lecteurs développant leurs applications sous Eclipse, les types génériques ne sont pas reconnus avec la version actuelle (Eclipse 3.0). Si vous souhaitez les utiliser, vous devez choisir un autre mode de développement (voir l annexe «Contenu et exploitation du CD- Rom», section «Installation d un environnement de développement»). Les collections stockent tout type d objets Comme nous avons pu le constater dans la section «Les listes», l ajout de valeurs à l intérieur d une liste ou d un dictionnaire ne peut s effectuer qu au travers d objets. Il est impossible d insérer un simple entier dans une liste, par exemple : ArrayList listevaleur = new ArrayList(); listevaleur.add(100); Ici, l ajout de la valeur numérique 100 provoque une erreur de compilation ayant pour message «The method add (int, Object) in the type ArrayList is not applicable for the arguments (int)». Pour insérer une valeur numérique, il convient de forcer le type simple (int, char, double, etc.) à devenir un objet, comme le montre l instruction suivante : listevaleur.add(new Integer(100)); Dans cette situation, la valeur numérique 100 est transformée en un «objet» contenant la valeur 100. Cette dernière peut alors être insérée dans une liste de type ArrayList. Cela fait, rien ne nous interdit d insérer dans la même liste, listevaleur, une nouvelle valeur comme suit : listevaleur.add("22"); La chaîne de caractères «22» n est pas un nombre mais un objet de type String. Il peut donc être inséré dans la liste listevaleur sans qu aucune erreur ne soit détectée lors de la compilation. La liste contient deux objets de types différents. Cependant, un problème se pose lors de la consultation de la liste. En effet, pour connaître la valeur enregistrée dans une liste, il convient de connaître son type. Pour récupérer la valeur 100, nous devons écrire : Integer valeur1 = (Integer) listevaleur.get(0); Mais il n est pas possible de récupérer la valeur «22» de la même façon. En effet, écrire : Integer valeur2 = (Integer) listevaleur.get(1); provoque une erreur d exécution ayant pour message : «Exception in thread "main" java.lang.classcastexception : java.lang.string». L interpréteur ne peut transformer une chaîne de caractères en un entier. La solution consistant à transformer la valeur "22" en String est valide. Mais elle oblige à connaître, avant consultation, le type de chaque donnée enregistrée pour chaque indice. Cela peut devenir très vite complexe à gérer. 298 Éditions Eyrolles

8 chapitre n 10 Collectionner un nombre indéterminé d objets Les génériques forcent le contrôle du type de données Pour éviter ce genre d erreur, la solution consiste à forcer le type de la liste à une seule forme de données, en utilisant les types génériques. Grâce à cette nouvelle structure, les listes ou encore les dictionnaires sont déclarés comme des listes d entiers, de chaînes de caractères ou d étudiants. Ils ne peuvent contenir aucune autre forme de données que celles spécifiées lors de la déclaration. La structure de déclaration d une liste utilisant des types génériques s écrit : ArrayList<Integer> listevaleur = new ArrayList<Integer>(); si la liste traitée ne doit contenir que des entiers, ou encore : ArrayList<Etudiant> listeetudiant = new ArrayList<Etudiant>(); pour définir une liste ne contenant que des objets de type Etudiant. Le terme <type> permet d indiquer au compilateur le type de données pouvant être traité par la liste ainsi créée. Il se traduit en français par «l objet listevaleur est une liste ne contenant que des entiers» ou «l objet listeetudiant est une liste ne contenant que des étudiants». De cette façon, une instruction du type : listevaleur.add("22"); entraîne une erreur décelable dès la phase de compilation. En effet, listevaleur, grâce au générique <Integer>, ne peut contenir que des entiers et «22» est de type String. L ambiguïté est levée bien avant la phase d exécution. Pour déclarer un dictionnaire d étudiants à l aide des types génériques, il convient d écrire : HashMap<String, Etudiant> listeclassée = new HashMap<String, Etudiant> (); Le premier terme placé entre < > indique que la clé d association est de type String, alors que le second définit le type des données (élément) enregistrées dans le dictionnaire. Les génériques simplifient le parcours des listes Grâce aux types génériques et à la nouvelle syntaxe de la boucle for, l affichage des éléments d une liste ou d un dictionnaire est simplifié. Ainsi avant la version 1.5 du compilateur, nous devions pour parcourir une liste d étudiants, écrire les instructions suivantes : Etudiant tmp ; ➊for (int i = 0; i < nbetudiants ; i++) { ➋ tmp = (Etudiant)liste.get(i) ; tmp.afficheunetudiant(); Éditions Eyrolles 299

9 partie n 3 Outils et techniques orientés objet ➊ La boucle for utilise un compteur permettant le parcours de la liste élément par élément, à partir de leur indice d enregistrement. ➋ Lors de la consultation de la liste, il est obligatoire d utiliser les mécanismes du «cast» pour s assurer que l objet extrait à l aide de la méthode get() soit du type attendu. Avec les types génériques, il n est plus nécessaire d utiliser le mécanisme du «cast», et la boucle for s écrit beaucoup plus simplement, comme le montre les instructions ci-après : ArrayList<Etudiant> listeetudiant = new ArrayList<Etudiant> (); for (Etudiant e : listeetudiant) e.afficheunetudiant(); La boucle for se traduit littéralement de la façon suivante : «pour chaque étudiant e contenu dans la liste listeetudiant, afficher son contenu». De la même façon, il n est plus nécessaire d utiliser un Iterator pour parcourir un dictionnaire. Ainsi, avec les instructions : ➊HashMap<String, Etudiant> dico = new HashMap<String, Etudiant> (); ➋ Collection<Etudiant> lc = dico.values(); ➌for ( Etudiant e : lc) e.afficheunetudiant(); le parcours du dictionnaire s effectue à partir d une collection d étudiants (➋) grâce à l utilisation du type générique <Etudiant>. Cette opération est valide, l objet dico contenant uniquement des objets de type Etudiant et des clés d association de type String (➊). Pour finir, la boucle for (➌) se traduit par l expression : «pour chaque étudiant e contenu dans la collection lc, afficher son contenu». Exemple : l application GestionClasse L emploi des types génériques transforme légèrement la classe Classe. La déclaration de la propriété listeclassée et le constructeur de la classe s écrivent à l aide des instructions : private HashMap<String, Etudiant> listeclassée ; public Classe() { listeclassée = new HashMap<String, Etudiant> (); La méthode permettant l affichage de la liste des étudiants s écrit : public void affichelesetudiants() { if (listeclassée.size()!= 0) { Collection<Etudiant> c = listeclassée.values(); for ( Etudiant e : c) e.afficheunetudiant(); else System.out.println("Il n y a pas d etudiant dans cette liste") ; 300 Éditions Eyrolles

10 chapitre n 10 Collectionner un nombre indéterminé d objets Ces transformations sont à insérer dans le fichier Classe.java. Ensuite, la gestion des étudiants d une classe est totalement achevée en écrivant l application GestionClasse comme suit : public class GestionClasse { public static void main (String [] argument) { byte choix = 0 ; Classe C = new Classe(); String prénom, nom; do { System.out.println("1. Ajoute un etudiant"); System.out.println("2. Supprime un etudiant"); System.out.println("3. Affiche la classe"); System.out.println("4. Affiche un etudiant"); System.out.println("5. Sortir"); System.out.println(); System.out.print("Votre choix : "); choix = Lire.b(); switch (choix) { case 1 : C.ajouteUnEtudiant(); break; case 2 : System.out.print("Entrer le prenom de l'etudiant : "); prénom = Lire.S(); System.out.print("Entrer le nom de l'etudiant : "); nom = Lire.S(); C.supprimeUnEtudiant(prénom, nom); break; case 3 : C.afficheLesEtudiants(); break; case 4 : System.out.print("Entrer le prenom de l'etudiant : "); prénom = Lire.S(); System.out.print("Entrer le nom de l'etudiant : "); nom = Lire.S(); C.rechercheUnEtudiant(prénom, nom); break; case 5 : System.exit(0) ; default : System.out.println("Cette option n'existe pas "); while ( choix!= 5); Éditions Eyrolles 301

11 partie n 3 Outils et techniques orientés objet Chaque option du menu utilise une méthode de la classe Classe. Ces options offrent la possibilité d ajouter, de supprimer et de consulter tout ou partie du dictionnaire, formé au fur et à mesure des choix de l utilisateur. L exécution de cette application peut avoir, par exemple, pour résultat à l écran : 1. Ajoute un etudiant 2. Supprime un etudiant 3. Affiche la classe 4. Affiche un etudiant 5. Sortir Votre choix : 1 Entrer le nom de l'etudiant : R. Entrer le prenom de l'etudiant : Sylvain Combien de notes pour l'etudiant Sylvain R. : 2 Entrer la note n 1 : 15 Entrer la note n 2 : Ajoute un etudiant 2. Supprime un etudiant 3. Affiche la classe 4. Affiche un etudiant 5. Sortir Votre choix : 1 Entrer le nom de l'etudiant : C. Entrer le prenom de l'etudiant : Gaelle Combien de notes pour l'etudiant Gaelle C. : 2 Entrer la note n 1 : 16 Entrer la note n 2 : Ajoute un etudiant 2. Supprime un etudiant 3. Affiche la classe 4. Affiche un etudiant 5. Sortir Votre choix : 4 Entrer le prenom de l'étudiant recherche : Entrer le nom de l'étudiant recherche : C. Gaelle est inconnu! 1. Ajoute un etudiant 2. Supprime un etudiant 3. Affiche la classe 4. Affiche un etudiant C. Gaelle 302 Éditions Eyrolles

12 chapitre n 10 Collectionner un nombre indéterminé d objets 5. Sortir Votre choix : 4 Entrer le prenom de l'étudiant recherche : Entrer le nom de l'étudiant recherche : C. Les notes de Gaelle C. sont : Sa moyenne vaut Ajoute un etudiant 2. Supprime un etudiant 3. Affiche la classe 4. Affiche un etudiant 5. Sortir Votre choix : 5 Gaelle Lors du premier choix 4, l utilisateur a inversé les nom et prénom de l étudiante. La clé qui en découle n existe pas dans le dictionnaire. Le programme ne peut donc pas retrouver les informations concernant cette étudiante. Ainsi, grâce aux objets de type HashMap, il est possible d organiser, sans beaucoup d efforts de programmation, des données de façon à pouvoir rechercher, modifier ou supprimer un élément dans une liste. Pourtant, l application GestionClasse possède encore un inconvénient majeur : elle perd la mémoire En effet, à chaque exécution, les données doivent de nouveau être saisies au clavier. Les données stockées dans la mémoire vive de l ordinateur se perdent à l arrêt du programme. Pour corriger ce défaut, le programme doit pouvoir enregistrer les informations traitées dans un fichier sur le disque dur. Cet enregistrement des données est aussi appelé archivage de données. Éditions Eyrolles 303

Java Licence Professionnelle CISII, 2009-10

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

Plus en détail

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

Package Java.util Classe générique

Package 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étail

Premiers Pas en Programmation Objet : les Classes et les Objets

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

Plus en détail

Prendre le marteau, le tableau, le mètre, le crayon, la ficelle, le clou, la pointe ;

Prendre le marteau, le tableau, le mètre, le crayon, la ficelle, le clou, la pointe ; s Introduction Naissance d'un programme Exercice I-1: Apprendre à décomposer une tâche en sous-tâches distinctes a. Objets nécessaires : 1 tableau, 1 clou, 2 pointes, 1 ficelle, 1 marteau, 1 crayon, 1

Plus en détail

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

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

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

Plus en détail

ACTIVITÉ DE PROGRAMMATION

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

Plus en détail

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

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

Plus en détail

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

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

Plus en détail

Java Licence Professionnelle CISII, 2009-2010

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

Plus en détail

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Anne Tasso Java Le livre de premier langage 10 e édition Avec 109 exercices corrigés Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Table des matières Avant-propos Organisation de l ouvrage..............................

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7 Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin

Plus en détail

Utilisation d objets : String et ArrayList

Utilisation d objets : String et ArrayList Chapitre 6 Utilisation d objets : String et ArrayList Dans ce chapitre, nous allons aborder l utilisation d objets de deux classes prédéfinies de Java d usage très courant. La première, nous l utilisons

Plus en détail

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

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

Plus en détail

Introduction au langage C

Introduction au langage C Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les

Plus en détail

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

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

Plus en détail

as Architecture des Systèmes d Information

as Architecture des Systèmes d Information Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes

Plus en détail

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation

Plus en détail

4. Groupement d objets

4. Groupement d objets Conception objet en Java avec BlueJ une approche interactive 4. Groupement d objets Collections et itérateurs David J. Barnes, Michael Kölling version française: Patrice Moreaux Rédigé avec 1.0 Principaux

Plus en détail

Une introduction à Java

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

Plus en détail

Programme Compte bancaire (code)

Programme 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étail

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles) 1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d

Plus en détail

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

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

Plus en détail

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez

Plus en détail

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

Plus en détail

TD3: tableaux avancées, première classe et chaînes

TD3: 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étail

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

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

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

Cours 1: Java et les objets

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

Plus en détail

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

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

Plus en détail

Cours d initiation à la programmation en C++ Johann Cuenin

Cours d initiation à la programmation en C++ Johann Cuenin Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................

Plus en détail

Les chaînes de caractères

Les chaînes de caractères Les chaînes de caractères Dans un programme informatique, les chaînes de caractères servent à stocker les informations non numériques comme par exemple une liste de nom de personne ou des adresses. Il

Plus en détail

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike

Plus en détail

TP, première séquence d exercices.

TP, 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étail

Notions fondamentales du langage C# Version 1.0

Notions fondamentales du langage C# Version 1.0 Notions fondamentales du langage C# Version 1.0 Z 2 [Notions fondamentales du langage Csharp] [Date : 25/03/09] Sommaire 1 Tout ce qu il faut savoir pour bien commencer... 3 1.1 Qu est ce qu un langage

Plus en détail

Programmation C. Apprendre à développer des programmes simples dans le langage C

Programmation C. Apprendre à développer des programmes simples dans le langage C Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités

Plus en détail

Les structures. Chapitre 3

Les structures. Chapitre 3 Chapitre 3 Les structures Nous continuons notre étude des structures de données qui sont prédéfinies dans la plupart des langages informatiques. La structure de tableau permet de regrouper un certain nombre

Plus en détail

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

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

Plus en détail

Algorithmique et Programmation, IMA

Algorithmique et Programmation, IMA Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions

Plus en détail

Chapitre 10. Les interfaces Comparable et Comparator 1

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

Plus en détail

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr Table des matières 1 Les bases 3 2 Variables et constantes 5 3 Quelques fonctions indispensables

Plus en détail

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing 3/4/27 Programmation Avancée Multimédia Multithreading Benoît Piranda Équipe SISAR Université de Marne La Vallée Besoin Programmes à traitements simultanés Réseau Réseau Afficher une animation en temps

Plus en détail

Langage Java. Classe de première SI

Langage Java. Classe de première SI Langage Java Table des matières 1. Premiers pas...2 1.1. Introduction...2 1.2. Mon premier programme...2 1.3. Les commentaires...2 2. Les variables et les opérateurs...2 3. La classe Scanner...3 4. Les

Plus en détail

Anne Tasso. Java. Le livre de. premier langage. 6 e édition. Groupe Eyrolles, 2000, 2002, 2005, 2006, 2008, 2010, ISBN : 978-2-212-12648-8

Anne Tasso. Java. Le livre de. premier langage. 6 e édition. Groupe Eyrolles, 2000, 2002, 2005, 2006, 2008, 2010, ISBN : 978-2-212-12648-8 Anne Tasso Java Le livre de premier langage 6 e édition Groupe Eyrolles, 2000, 2002, 2005, 2006, 2008, 2010, ISBN : 978-2-212-12648-8 Table des matières Avant-propos Organisation de l ouvrage..............................

Plus en détail

Bases de programmation. Cours 5. Structurer les données

Bases de programmation. Cours 5. Structurer les données Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et

Plus en détail

Exercices sur les interfaces

Exercices sur les interfaces Exercices sur les interfaces Fabrice Rossi 18 octobre 1999 1 Le type Object 1.1 Manipulations élémentaires Exercice 1.1 : Indiquer l affichage produit par le programme suivant : public class UpCast1 {

Plus en détail

Cours de C++ François Laroussinie. 2 novembre 2005. Dept. d Informatique, ENS de Cachan

Cours de C++ François Laroussinie. 2 novembre 2005. Dept. d Informatique, ENS de Cachan Cours de C++ François Laroussinie Dept. d Informatique, ENS de Cachan 2 novembre 2005 Première partie I Introduction Introduction Introduction Algorithme et programmation Algorithme: méthode pour résoudre

Plus en détail

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

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

Plus en détail

Programmation Par Objets

Programmation 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étail

Initiation à l algorithmique

Initiation à l algorithmique Informatique S1 Initiation à l algorithmique procédures et fonctions 2. Appel d une fonction Jacques TISSEAU Ecole Nationale d Ingénieurs de Brest Technopôle Brest-Iroise CS 73862-29238 Brest cedex 3 -

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les

Plus en détail

Programmation C++ (débutant)/instructions for, while et do...while

Programmation C++ (débutant)/instructions for, while et do...while Programmation C++ (débutant)/instructions for, while et do...while 1 Programmation C++ (débutant)/instructions for, while et do...while Le cours du chapitre 4 : le for, while et do...while La notion de

Plus en détail

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Seance 2: Complétion du code de jeu. (durée max: 2h) Mot clé const et pointeurs: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Implémentez jeu_recupere_piece

Plus en détail

Le langage C. Séance n 4

Le langage C. Séance n 4 Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de

Plus en détail

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

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

Plus en détail

UE C avancé cours 1: introduction et révisions

UE C avancé cours 1: introduction et révisions Introduction Types Structures de contrôle Exemple UE C avancé cours 1: introduction et révisions Jean-Lou Desbarbieux et Stéphane Doncieux UMPC 2004/2005 Introduction Types Structures de contrôle Exemple

Plus en détail

Flux de données Lecture/Ecriture Fichiers

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

Plus en détail

Cours Informatique Master STEP

Cours Informatique Master STEP Cours Informatique Master STEP Bases de la programmation: Compilateurs/logiciels Algorithmique et structure d'un programme Programmation en langage structuré (Fortran 90) Variables, expressions, instructions

Plus en détail

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des

Plus en détail

Programmation par les Objets en Java

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

Plus en détail

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

Gestion distribuée (par sockets) de banque en Java

Gestion 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étail

INITIATION AU LANGAGE JAVA

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

Plus en détail

Derrière toi Une machine virtuelle!

Derriè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étail

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation : Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de

Plus en détail

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en

Plus en détail

Prendre le marteau, le tableau, le mètre, le crayon, la ficelle, le clou, la pointe ;

Prendre le marteau, le tableau, le mètre, le crayon, la ficelle, le clou, la pointe ; s Introduction Naissance d'un programme Exercice I-1 : Apprendre à décomposer une tâche en sous-tâches distinctes a. Objets nécessaires : 1 tableau, 1 clou, 2 pointes, 1 ficelle, 1 marteau, 1 crayon, 1

Plus en détail

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris : Développement d un client REST, l application Vélib 1. Présentation L application présentée permet de visualiser les disponibilités des vélos et des emplacements de parking à la disposition des parisiens

Plus en détail

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1 Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1 B. Baert & F. Ludewig Bruno.Baert@ulg.ac.be - F.Ludewig@ulg.ac.be Qu est-ce que la programmation? Programmer Ecrire un

Plus en détail

Conventions d écriture et outils de mise au point

Conventions d écriture et outils de mise au point Logiciel de base Première année par alternance Responsable : Christophe Rippert Christophe.Rippert@Grenoble-INP.fr Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette

Plus en détail

PROGRAMMATION PAR OBJETS

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

Plus en détail

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

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

Chapitre VI- La validation de la composition.

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

Plus en détail

TD/TP PAC - Programmation n 3

TD/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étail

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

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

Plus en détail

Claude Delannoy. 3 e édition C++

Claude Delannoy. 3 e édition C++ Claude Delannoy 3 e édition Exercices Exercices C++ en en langage langage delc++ titre 4/07/07 15:19 Page 2 Exercices en langage C++ AUX EDITIONS EYROLLES Du même auteur C. Delannoy. Apprendre le C++.

Plus en détail

Le prototype de la fonction main()

Le prototype de la fonction main() Le prototype de la fonction main() 1. Introduction...1 2. Paramètres et type de retour de la fonction main()...1 3. Exemple 1...2 4. La fonction exit() du C...2 5. Détecter le code de retour d un programme

Plus en détail

Cours 14 Les fichiers

Cours 14 Les fichiers Cours 14 Les fichiers F. Gayral 1 Fichier : définition /media/travaux/documents/fgenseignement/java1/courstpsfgfc/14-fichiers/voirtypefichiers Fichier = ensemble d informations codées et stockées sur une

Plus en détail

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

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

Plus en détail

Les arbres binaires de recherche

Les arbres binaires de recherche Institut Galilée Année 2010-2011 Algorithmique et arbres L2 TD 6 Les arbres binaires de recherche Type en C des arbres binaires (également utilisé pour les ABR) : typedef struct noeud_s { struct noeud_s

Plus en détail

Examen Médian - 1 heure 30

Examen Médian - 1 heure 30 NF01 - Automne 2014 Examen Médian - 1 heure 30 Polycopié papier autorisé, autres documents interdits Calculatrices, téléphones, traducteurs et ordinateurs interdits! Utilisez trois copies séparées, une

Plus en détail

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

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

Plus en détail

Projet de programmation (IK3) : TP n 1 Correction

Projet de programmation (IK3) : TP n 1 Correction Projet de programmation (IK3) : TP n 1 Correction Semaine du 20 septembre 2010 1 Entrées/sorties, types de bases et structures de contrôle Tests et types de bases Tests et types de bases (entiers) public

Plus en détail

Problèmes liés à la concurrence

Problèmes liés à la concurrence ENS Cachan Problématique Difficile de gérer la concurrence : Pas toujours facile d avoir des fonctions réentrantes. Risque de race condition : ex : x :=x+1 x :=x+1 On voudrait des blocs d instructions

Plus en détail

Java 1.5 : principales nouveautés

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

Plus en détail

INF 321 : mémento de la syntaxe de Java

INF 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étail

Cours 1 : La compilation

Cours 1 : La compilation /38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà

Plus en détail

RMI le langage Java XII-1 JMF

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

Plus en détail

F. Barthélemy. 17 mai 2005

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

Plus en détail

Un ordonnanceur stupide

Un 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étail

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0

Plus en détail

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

RAPPELS 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étail

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

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

Plus en détail

Programmation avec des objets : Cours 7. Menu du jour

Programmation avec des objets : Cours 7. Menu du jour 1 Programmation avec des objets : Cours 7 Menu du jour 1. Retour sur la classe Liste 2. Précisions sur l interface 3. Difficultés dans le cas d erreurs 4. Soulever des exceptions 5. Utilisation des Listes

Plus en détail

Java c est quoi? Java pourquoi?

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

Plus en détail

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

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

Plus en détail