Notions de programmation orientée objet
|
|
- Géraldine Després
- il y a 8 ans
- Total affichages :
Transcription
1 1 Génie Logiciel Notions de programmation orientée objet Renaud Marlet LaBRI / INRIA màj 19/04/2007
2 2 Les données d'abord (1) Important résultat de l'expérience : Le plus souvent, il vaut mieux organiser un système autour des données qu'autour des fonctions Et ce d'autant plus que les données sont complexes Mais si les données sont simples et les traitements complexes, OK pour organiser le système autour des fonctions ex. bibliothèque de fonctions trigonométriques
3 3 Les données d'abord (2) Important résultat de l'expérience : Le plus souvent, il vaut mieux organiser un système autour des données qu'autour des fonctions Importance du lien avec le modèle conceptuel objets, attributs, opérations pour les manipuler Programmation Orientée Objet (OO)
4 4 Notions de programmation objet Nécessite un cours complet (!) principes méthodologie langages : Java, C++, Eiffel,... Juste quelques notions ici idées les plus importantes exemples en Java comment faire de la programmation objet en C
5 Programmation objet : 5 classe et instance Classe = type d'objet (données + opérations pour les manipuler) ex. : classe «point» dans le plan (c.-à-d. en dim 2) données = deux coordonnées cartésiennes (x,y) opérations = déplacer, calculer la norme (distance à (0,0)),... en général : 1 fichier ~ 1 classe Instance = exemplaire de la classe ex. : un point en (3,5), un en (-2,7), un autre en (3,5)...
6 Programmation objet : 6 champ et méthode Champ = attribut de l'objet ex. : coordonnée x, coordonnée y (on dit aussi «variable d'instance») Méthode = opération pour manipuler les données (~ fonction) ex. : déplacer(dx,dy), norme()
7 7 Exemple en Java : classe Point class Point { double x, y; // valeur 0 par défaut double norme() { return Math.sqrt(x*x+y*y); void déplacer(double dx, double dy) { x += dx; y += dy; Point pt = new Point(); pt.déplacer(3.0,4.0); double nm = pt.norme(); // 5.0
8 Exemple en Java : classe Point 8 classe définition de champs définition de méthodes class Point { double x, y; // valeur 0 par défaut double norme() { return Math.sqrt(x*x+y*y); void déplacer(double dx, double dy) { x += dx; y += dy; Point pt = new Point(); pt.déplacer(3.0,4.0); fabrication d'une instance double nm = pt.norme(); // 5.0 appel de méthodes
9 9 Exemple en Java : instances class Point {... double distance(point pt) { double dx = x-pt.x; double dy = y-pt.y; return Math.sqrt(dx*dx+dy*dy); Point pt1 = new Point().déplacer(7.0,3.0); Point pt2 = new Point().déplacer(4.0,-1.0); double dist = pt1.distance(pt2); // 5.0
10 10 Exemple en Java : instances définition de classe définition de méthode class Point {... double distance(point pt) { double dx = x-pt.x; double dy = y-pt.y; return Math.sqrt(dx*dx+dy*dy); fabrication d'instances Point pt1 = new Point().déplacer(7.0,3.0); Point pt2 = new Point().déplacer(4.0,-1.0); double dist = pt1.distance(pt2); // 5.0 appel de méthodes
11 Programmation objet : 11 constructeur Constructeur sorte de méthode initialise les champs de l'objet lors de sa création créations/initialisations plus lisibles permet des initialisations toujours cohérentes
12 12 Exemple en Java : constructeur class Point { double x, y; // initialisés par défaut à 0 Point(double u, double v) { x = u; y = v;... Point pt1 = new Point(7.0,3.0); Point pt2 = new Point(4.0,-1.0); double dist = pt1.distance(pt2); // 5.0
13 Exemple en Java : constructeur 13 classe constructeur champs class Point { double x, y; // initialisés par défaut à 0 Point(double u, double v) { x = u; y = v;... Point pt1 = new Point(7.0,3.0); Point pt2 = new Point(4.0,-1.0); instances double dist = pt1.distance(pt2); // 5.0
14 Programmation objet : 14 extension de classe et héritage Extension de classe version spécialisée d'une classe existante héritage des champs et méthodes de cette classe champs et méthodes additionnels vocabulaire : sous-classe : la classe étendue super classe : la classe que l'on étend
15 15 Exemple en Java : extension class PointColoré extends Point { Couleur couleur; PointColoré(double u, double v, Couleur coul){ x = u; y = v; couleur = coul; boolean mêmecouleur(pointcoloré pt) { return couleur.equals(pt.couleur); Couleur rouge = new Couleur(255,0,0); PointColoré ptrouge = new PointColoré(3,4,rouge); double nm = ptrouge.norme(); // 5.0
16 Exemple en Java : extension 16 constructeur sous-classe champ ajouté méthode ajoutée super classe class PointColoré extends Point { Couleur couleur; PointColoré(double u, double v, Couleur coul){ x = u; y = v; couleur = coul; boolean mêmecouleur(pointcoloré pt) { return couleur.equals(pt.couleur); champs hérités méthode héritée Couleur rouge = new Couleur(255,0,0); instances PointColoré ptrouge = new PointColoré(3,4,rouge); double nm = ptrouge.norme(); // 5.0
17 Programmation objet : 17 masquage de l'information Masquage de l'information s'applique à : classes, champs et méthodes visibilité (scope) public : visible par toutes les classes private : visible seulement dans la classe protected : visible seulement par les classes étendues (package : visible seulement des classes du même package) Type abstrait on peut changer le contenu privé de la classe sans changer ses utilisations publiques
18 18 Exemple en Java : visibilité public class Point { private double x, y; public void déplacer(double dx, double dy) { x += dx; y += dy; Point pt = new Point(); pt.x = 3.0; pt.y = 4.0; // Erreur à la compilation pt.déplacer(3.0,4.0); // OK
19 Exemple en Java : visibilité 19 classe champs invisibles en dehors de Point seul moyen de changer les coordonnées public class Point { private double x, y; public void déplacer(double dx, double dy) { x += dx; y += dy; Point pt = new Point(); fabrication d'instance pt.x = 3.0; pt.y = 4.0; // Erreur à la compilation pt.déplacer(3.0,4.0); // OK champs invisibles en dehors de Point
20 Programmation objet : 20 interface Interface ~ squelette d'une classe, sans implémentation méthodes d'interface : sans corps (abstraites) pas de champs d'interface plusieurs classes peuvent implémenter une même interface une interface peut étendre plusieurs autres interfaces Type abstrait (... ) on peut changer la classe sans changer les utilisations de l'interface
21 21 Exemple en Java : interface (1) interface Point2D { double norme(); void déplacer(double dx, double dy); class PointCartésien implements Point2D {... class PointPolaire implements Point2D { double rayon, angle; double norme() { return rayon; void déplacer(double dx, double dy) {...
22 Exemple en Java : interface (1) 22 définition d'interface implémentations d'interface interface Point2D { double norme(); void déplacer(double dx, double dy); définition de classes qui implémentent cette interface class PointCartésien implements Point2D {... class PointPolaire implements Point2D { double rayon, angle; double norme() { return rayon; void déplacer(double dx, double dy) {... méthodes interface méthodes de classe qui implémentent les méthodes d'interface
23 23 Exemple en Java : interface (2) interface Point2D { double norme(); void déplacer(double dx, double dy); Point2D pt1 = new PointCartésien(1.0, -2.0); Point2D pt2 = new PointPolaire(4.0, ); pt1.déplacer(2.0, 6.0); pt2.déplacer(1.0, 1.0); double nm1 = pt1.norme(); // 5.0 double nm2 = pt2.norme(); //~ 5.0
24 Exemple en Java : interface (2) 24 interface interface Point2D { double norme(); méthodes interface void déplacer(double dx, double dy); appel de constructeurs spécifiques à chaque classe Point2D pt1 = new PointCartésien(1.0, -2.0); Point2D pt2 = new PointPolaire(4.0, ); pt1.déplacer(2.0, 6.0); pt2.déplacer(1.0, 1.0); double nm1 = pt1.norme(); // 5.0 double nm2 = pt2.norme(); //~ 5.0 appels des méthodes d'interface
25 25 Et aussi... Notion de package (paquetage) espace de nommage Héritage multiple extension de plusieurs classes Classes abstraites ~ classes incomplètes Variables de classes... ~ globales
26 26 Programmation objet et langage C Langage C programmation impérative (effets de bord) variables, fonctions, types structurés pas de notions d'objet (classe, méthode,...) Extensions objet à C langages : C++, Objective C Programmation objet en langage C style de programmation particulier ( )
27 Programmation objet en langage C : 27 classe, champ, instance Déclaration de classe (type d'objet) déclaration de structure déclaration d'un type pointeur vers cette structure Champ de classe (attribut) champ de structure Création d'instance (objet) : définition d'entités du type structure allocation dynamique et cast vers le type pointeur
28 Exemple en C : classe et instance 28 déclaration de structure champs «classe» = pointeur sur la structure struct str_pt { double x, y; ; typedef struct str_pt *point; /* Allocation statique */ struct str_pt orig = { 0.0, 0.0 ; point origine = &orig; /* Allocation dynamique */ allocation point pt = (point) malloc(sizeof(struct str_pt)); cast en pointeur sur la structure
29 Programmation objet en langage C : 29 constructeur, méthode Constructeur (création d'objet) fonction qui alloue dynamiquement une structure et retourne un pointeur vers la structure Méthode (opération) : fonction qui prend comme premier argument un type pointeur vers la structure
30 30 Exemple en C : constructeur typedef struct str_pt { double x, y; *point ; point nouveaupoint(double x, double y) { point pt = (point) malloc(sizeof(struct str_pt)); pt->x = x; pt->y = y; return pt; point pt1 = nouveaupoint(3.0, 4.0); point pt2 = nouveaupoint(4.0, -1.0);
31 Exemple en C : constructeur 31 «classe» = pointeur vers struct champs «constructeur» = fonction qui alloue une struct typedef struct str_pt { double x, y; *point ; point nouveaupoint(double x, double y) { point pt = (point) malloc(sizeof(struct str_pt)); pt->x = x; pt->y = y; return pt; appels du «constructeur» point pt1 = nouveaupoint(3.0, 4.0); point pt2 = nouveaupoint(4.0, -1.0);
32 32 Exemple en C : méthodes double norme(point pt){ return sqrt(pt->x * pt->x + pt->y * pt->y); void déplacer(point pt, double dx, double dy){ pt->x += dx; pt->y += dy; double distance(point pt1, point pt2) { double dx = pt1->x pt2->x; double dy = pt1->y pt2->y; return sqrt(dx*dx+dy*dy);
33 Exemple en C : méthodes 33 «méthodes» = fonction avec objet comme premier argument double norme(point pt){ return sqrt(pt->x * pt->x + pt->y * pt->y); void déplacer(point pt, double dx, double dy){ pt->x += dx; pt->y += dy; double distance(point pt1, point pt2) { double dx = pt1->x pt2->x; double dy = pt1->y pt2->y; return sqrt(dx*dx+dy*dy);
34 Programmation C : 34 déclaration et définition Déclaration : suposition d'existence (dans un autre fichier), typage ex. extern int x; extern int f(char, struct str); Définition lieu d'existence (ce fichier), rappel du typage ex. int x; int f(char c, struct str mystr) {... ( contrôle possible par rapport à des déclarations)
35 Programmation objet en C : 35 masquage de l'information Visibilité des entités (variables, fonctions) modifieur «extern» déclaration d'une entité visible à l'extérieur du fichier variables et fonctions publiques (déclaration) modifieur «static» définition d'une entité locale au fichier (invisible à l'extérieur) variables et fonctions privées sans modifieur définition d'une entité visible à l'extérieur du fichier (il suffit pour ça qu'on l'y déclare «extern») variables et fonctions publiques (définition)
36 Programmation objet en C : 36 interface Interface fichier «.h» déclarations de type (structure et pointeur sur structure) déclarations de fonctions (extern) Classe qui implémente l'interface inclusion du fichier «.h» (#include) définition des fonctions correspondantes Classe qui utilise l'interface inclusion du fichier «.h» (#include) appel des fonctions déclarées
37 Exemple en C : 37 fichier d'interface (point.h) // Classe typedef struct str_pt *point; // Constructeur extern point nouveaupoint(double x, double y); // Méthodes extern double norme(point pt); extern void déplacer(point pt, double dx, double dy); extern double distance(point pt1, point pt2);
38 Exemple en C : 38 fichier d'interface (point.h) // Classe typedef struct str_pt *point; // Constructeur extern point nouveaupoint(double x, double y); // Méthodes extern double norme(point pt); extern void déplacer(point pt, double dx, double dy); extern double distance(point pt1, point pt2);
39 Exemple en C : 39 implémentation de l'interface (point.c) // Inclusion de l'interface #include "point.h" // Définition du type typedef struct str_pt { double x, y; *point; // Définition des constructeurs et méthodes static double normexy(double x, double y) { return sqrt(x*x+y*y); extern double norme(point pt) { return normexy(pt->x, pt->y); extern double distance(point pt1, point pt2) { return normexy(pt1->x - pt2->x, pt1->y pt2->y);
40 Exemple en C : 40 implémentation de l'interface (point.c) // Inclusion de l'interface #include "point.h" // Définition du type typedef struct str_pt { double x, y; *point; // Définition des constructeurs et méthodes static double normexy(double x, double y) { return sqrt(x*x+y*y); extern double norme(point pt) { return normexy(pt->x, pt->y); extern double distance(point pt1, point pt2) { return normexy(pt1->x - pt2->x, pt1->y pt2->y);
41 Exemple en C : 41 utilisation via l'interface (use.c) // Inclusion de l'interface #include "point.h" // Utilisation via l'interface void use() { point pt1 = nouveaupoint(3.0, 4.0); point pt2 = nouveaupoint(4.0, -1.0); printf("norm = %d\n", norme(pt1)); printf("dist = %d\n", distance(pt1,pt2)); int u = pt1->x; /* Erreur à la compilation */ int v = normexy(3.0,4.0); /* Erreur à la compilation */
42 Exemple en C : 42 utilisation via l'interface (use.c) // Inclusion de l'interface #include "point.h" // Utilisation via l'interface void use() { point pt1 = nouveaupoint(3.0, 4.0); point pt2 = nouveaupoint(4.0, -1.0); printf("norm = %d\n", norme(pt1)); printf("dist = %d\n", distance(pt1,pt2)); int u = pt1->x; /* Erreur à la compilation */ int v = normexy(3.0,4.0); /* Erreur à la compilation */
43 Limitations de 43 la programmation objet en C Interface seulement pour masquer Pas de multiple implémentation (dans un même binaire) Extension plus lourde structure dans structure Héritage plus lourd (explicite) «cast» de type (de la sous-classe vers la superclasse) Moins de contrôles du compilateur pas de contrôle de la légalité des casts
44 44 Programmation objet en C Suivre l'esprit, pas la lettre (!) s'adapter au problème : ne pas aveuglément tout traiter avec des «objets à la C» (pointeurs vers structure et fonctions associées) aide à l'organisation des déclarations et définitions
45 45 À retenir Organisation du système autour de : fonctions si pas d'objets ou objets simples (ex. scalaires) données si des objets complexes Lien avec le modèle conceptuel Concepts de la programmation objet classe, instance, champ, méthode, constructeur, interface, héritage, extension Masquage de l'information et types abstraits
Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.
Encapsulation L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. La visibilité dépend des membres : certains membres peuvent être visibles et d'autres
Plus en détailPolymorphisme, la classe Object, les package et la visibilité en Java... 1
Polymorphisme, la classe Object, les package et la visibilité en Java. Polymorphisme, la classe Object, les package et la visibilité en Java.... 1 Polymorphisme.... 1 Le DownCast... 4 La Classe Object....
Plus en dé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étailGénéralités sur le Langage Java et éléments syntaxiques.
Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...
Plus en dé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é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é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é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é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étailJava Licence Professionnelle 2009-2010. Cours 7 : Classes et méthodes abstraites
Java Licence Professionnelle 2009-2010 Cours 7 : Classes et méthodes abstraites 1 Java Classes et méthodes abstraites - Le mécanisme des classes abstraites permet de définir des comportements (méthodes)
Plus en détailC++ Programmer. en langage. 8 e édition. Avec une intro aux design patterns et une annexe sur la norme C++11. Claude Delannoy
Claude Delannoy Programmer en langage C++ 8 e édition Avec une intro aux design patterns et une annexe sur la norme C++11 Groupe Eyrolles, 1993-2011. Groupe Eyrolles, 2014, pour la nouvelle présentation,
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étailC++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement
C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement des objets d'une classe Utilisation d'une classe Droit
Plus en dé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é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étailIntroduction à l héritage en C++
Algorithmique/Langage 1ère année Introduction à l héritage en C++ Yacine BELLIK IUT d Orsay Yacine.Bellik@iut-orsay.fr 1 Bibliographie Ce cours est basé sur le livre suivant : Programmer en C++, 5ème édition
Plus en détailChapitre 2. Classes et objets
Chapitre 2: Classes et Objets 1/10 Chapitre 2 Classes et objets Chapitre 2: Classes et Objets 2/10 Approche Orientée Objet Idée de base de A.O.O. repose sur l'observation de la façon dont nous procédons
Plus en dé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étailChapitre VI- La validation de la composition.
Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions
Plus en dé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étailProgrammer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)
Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes
Plus en dé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é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étailJAVA TD0. Prise en main du langage Environnement de base JAVA 1
JAVA TD0 Prise en main du langage Environnement de base JAVA 1 Mon premier programme public class HelloWorld { public static void main(string [] arg){ System.out.println("Hello, World!"); main(string []
Plus en dé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é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étailPrénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004
Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)
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é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étailConception. Génie Logiciel. Renaud Marlet. LaBRI / INRIA http://www.labri.fr/~marlet. (d'après A.-M. Hugues) màj 17/04/2007
1 Génie Logiciel (d'après A.-M. Hugues) Conception Renaud Marlet LaBRI / INRIA http://www.labri.fr/~marlet màj 17/04/2007 2 Position dans le cycle de vie Contexte : étant donnée une spécification (ce que
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é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étailet Programmation Objet
FACULTE POLYTECHNIQUE DE MONS Service d Informatique et Programmation Objet Mohammed Benjelloun 2 ème Bachelier Année académique 2008-2009 Table des matières Avant-propos--------------------------------------------------------------------------
Plus en détailSuivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)
Modularité Extensions Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs) généricité modules de première classe : peuvent être
Plus en détailPolycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5
UNIVERISTE MOHAMMED PREMIER Faculté des Sciences d Oujda Oujda - Maroc Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5 Pr. El Mostafa DAOUDI Département de Mathématiques
Plus en détailProgrammation par composants (1/3) Programmation par composants (2/3)
Programmation par composants (1/3) La programmation par composant vise le développement de logiciel par aggrégation de briques logicielles existantes est indépendante de la POO La programmation par composant
Plus en dé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é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é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étailRappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme
Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes treinen@pps.univ-paris-diderot.fr 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation
Plus en détailUniversité de Bangui. Modélisons en UML
Université de Bangui CRM Modélisons en UML Ce cours a été possible grâce à l initiative d Apollinaire MOLAYE qui m a contacté pour vous faire bénéficier de mes connaissances en nouvelles technologies et
Plus en dé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étailComposants Logiciels. Le modèle de composant de CORBA. Plan
Composants Logiciels Christian Pérez Le modèle de composant de CORBA Année 2010-11 1 Plan Un rapide tour d horizon de CORBA 2 Introduction au modèle de composant de CORBA Définition de composants CORBA
Plus en détailProgrammation. fonctionnelle, impérative, logique et orientée objet
Programmation fonctionnelle, impérative, logique et orientée objet Introduction Les langages de programmation permettent de décrire des calculs de façon plus abstraite qu'un programme machine. Les programmes
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é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étailDiagramme de classes
Diagramme de classes Un diagramme de classes décrit les classes et leurs relations (associations, généralisation/spécialisation, ). classe association méthodes attributs héritage Diagramme de classes :
Plus en détailPlan Pédagogique du cours
Plan Pédagogique du cours Module: Programmation Orientée Objet Section : informatique Niveau : 3 ème niveau (gestion, industriel, réseau) Volume Horaire : 22,5 heures Cours Intégrés + 45 Travaux Pratiques
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é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étailSeance 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étailbasée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML
basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML http://olivier-augereau.com Sommaire Introduction I) Les bases II) Les diagrammes
Plus en détailCours 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étailProjet gestion d'objets dupliqués
Projet gestion d'objets dupliqués Daniel Hagimont Daniel.Hagimont@enseeiht.fr 1 Projet Service de gestion d'objets dupliqués Mise en cohérence lors de la prise d'un verrou sur un objet Pas de verrous imbriqués
Plus en détailProgrammation MacOSX / ios
Programmation MacOSX / ios Master Ingénierie Informatique 2011-2012 Jean-Baptiste.Yunès@liafa.jussieu.fr deux extensions objets de C : C++ (Stroustrup) Objective-C (Cox & Love) ajout de constructions à
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é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é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étailLicence 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étailCentre 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étailAide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr
Aide mémoire UML & Java 1ère partie : Introduction marc.lemaire@u-cergy.fr 9 septembre 2014 1 2014 v1.11 Table des matières 1 Généralités 6 1.1 Notations utilisées.....................................
Plus en détailCours de Programmation Impérative: Zones de mémoires et pointeurs
Cours de Programmation Impérative: Zones de mémoires et pointeurs Julien David A101 - david@lipn.univ-paris13.fr Julien David (A101 - david@lipn.univ-paris13.fr) 1 / 1 Z`o n`e s `d`e m`é m`o i r`e Julien
Plus en détailUML. Diagrammes de classes (suite) Delphine Longuet. delphine.longuet@lri.fr
Polytech Paris-Sud Formation initiale 3 e année Spécialité Informatique Année 2014-2015 UML Diagrammes de classes (suite) Delphine Longuet delphine.longuet@lri.fr Opérations Opérations Service qui peut
Plus en détailQuelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)
Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07
Plus en détailPrincipes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle
2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA Stéphane Vialle Stephane.Vialle@supelec.fr http://www.metz.supelec.fr/~vialle 1 Principes 2 Architecture 3 4 Aperçu d utilisation
Plus en détailLe 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étailBases 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étailINITIATION 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é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étail1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.
1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this
Plus en dé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étailTP1 : Initiation à Java et Eclipse
TP1 : Initiation à Java et Eclipse 1 I. Objectif du TP TP1 : Initiation à Java et Eclipse Programmation Mobile Initiation à l environnement Eclipse et aux notions de base du langage Java. II. Environnement
Plus en détailCOMPARAISONDESLANGAGESC, C++, JAVA ET
REPUBLIQUE DU BENIN *******@******* MINISTERE DE L ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE(MESRS) *******@******* UNIVERSITE D ABOMEY CALAVI(UAC) *******@******* ECOLE POLYTECHNIQUE D ABPOMEY
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étailJADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.
: Java Agent DEvelopment framework Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.fr Introduction à la plateforme JADE 1) Modèle d agent 2) Services 3) Norme FIPA
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étailLa carte à puce. Jean-Philippe Babau
La carte à puce Jean-Philippe Babau Département Informatique INSA Lyon Certains éléments de cette présentation sont issus de documents Gemplus Research Group 1 Introduction Carte à puce de plus en plus
Plus en détailApplication web de gestion de comptes en banques
Application web de gestion de comptes en banques Objectif Réaliser une application Web permettant à un client de gérer ses comptes en banque Diagramme de cas d'utilisation 1 Les cas d'utilisation Connexion
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étailProgrammation Orientée Objet application au langage Java Version Novembre 2007
Programmation Orientée Objet application au langage Java Version Novembre 2007 Mickaël BARON - 2007 mailto:baron.mickael@gmail.com ou mailto:mickael.baron@serli.com SERLI informatique SERLI : www.serli.com
Plus en détailUE Programmation Impérative Licence 2ème Année 2014 2015
UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative
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étailPlan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml
OCL Object Constraint Language Le langage de contraintes d'uml Plan 1. Introduction 2. Les principaux concepts d'ocl Object Constraint Language 1 Object Constraint Language 2 Exemple: une application bancaire
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é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é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étailBrefs rappels sur la pile et le tas (Stack. / Heap) et les pointeurs
Brefs rappels sur la pile et le tas (Stack / Heap) et les pointeurs (exemples en C) v1.11 - Olivier Carles 1 Pile et Tas Mémoire allouée de manière statique Mémoire Allouée Dynamiquement variables locales
Plus en détailCours 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étailAnalyse de sécurité de logiciels système par typage statique
Contexte Modélisation Expérimentation Conclusion Analyse de sécurité de logiciels système par typage statique Application au noyau Linux Étienne Millon UPMC/LIP6 Airbus Group Innovations Sous la direction
Plus en détailLa technologie Java Card TM
Présentation interne au CESTI La technologie Java Card TM sauveron@labri.u-bordeaux.fr http://dept-info.labri.u-bordeaux.fr/~sauveron 8 novembre 2002 Plan Qu est ce que Java Card? Historique Les avantages
Plus en détailTraduction des Langages : Le Compilateur Micro Java
BARABZAN Jean-René OUAHAB Karim TUCITO David 2A IMA Traduction des Langages : Le Compilateur Micro Java µ Page 1 Introduction Le but de ce projet est d écrire en JAVA un compilateur Micro-Java générant
Plus en détailApprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)
Introduction à la POO 1. Histoire de la POO 9 2. Historique du 12 La conception orientée objet 1. Approche procédurale et décomposition fonctionnelle 13 2. La transition vers l'approche objet 14 3. Les
Plus en détailBASES DE DONNEES ORIENTEES OBJETS BDA10.1
BASES DE DONNEES ORIENTEES OBJETS BDA10.1 Trois chapitres Principes et modèles 2 approches : langage de programmation OO => nouveaux SGBD "purs orientés-objets" norme ODMG extension des bd relationnelles
Plus en détailJava c est quoi? Java pourquoi?
Grandes lignes du cours Cours JAVA : Le bases du langage Java. Version 3.02 Julien Sopena 1 1 julien.sopena@lip6.fr Équipe REGAL - INRIA Rocquencourt LIP6 - Université Pierre et Marie Curie Licence professionnelle
Plus en détailIntergiciels pour la répartition CORBA : Common Object Request Broker. Patrice Torguet torguet@irit.fr Université Paul Sabatier
Intergiciels pour la répartition CORBA : Common Object Request Broker Patrice Torguet torguet@irit.fr Université Paul Sabatier Plan du cours 2 Introduction à CORBA Architecture de l ORB Implémentation
Plus en détailClasses et Objets en Ocaml.
Classes et Objets en Ocaml. Didier Rémy 2001-2002 http://cristal.inria.fr/ remy/mot/2/ http://www.enseignement.polytechnique.fr/profs/informatique/didier.remy/mot/2/ Cours Exercices Slide 1 1. Objets 2.
Plus en détailGénie Logiciel avec Ada. 4 février 2013
Génie Logiciel 4 février 2013 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires I. Principes II. Notions propres à la POO I. Principes Chapitre
Plus en détailCompression de Données - Algorithme de Huffman Document de Conception
ROLLET Samuel SALLE Jennifer Compression de Données - Algorithme de Huffman Document de Conception Projet d'algorithmique et Structure des Données 1 SOMMAIRE 1. Domaine d application....4 1.1 Objectifs
Plus en détailTutoriel: Création d'un Web service en C++ avec WebContentC++Framework
Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Gaël de Chalendar CEA LIST / LIC2M Journée de Présentation des Technologies WebContent INSTN 14/12/2009 Présentation de gsoap Plan
Plus en détailChapitre 1 : La gestion dynamique de la mémoire
Chapitre 1 : La gestion dynamique de la mémoire En langage C un programme comporte trois types de données : Statiques; Automatiques ; Dynamiques. Les données statiques occupent un emplacement parfaitement
Plus en détail