Objectifs. Objectifs. Héritage multiple. Construction/Destruction. Masquage. Classes virtuelles. Conclusion
|
|
- Édouard Beaudry
- il y a 6 ans
- Total affichages :
Transcription
1 du cours d aujourd hui Informatique II : Cours de programmation (C++) Introduire la notion d héritage Construction/destruction Ambiguïté des attributs/méthodes hérités Haroud Laboratoire d Intelligence Artificielle Faculté I&C (Retour sur les collections hétérogènes) Informatique II Cours 8 : 1 / 32 Informatique II Cours 8 : 2 / 32 Où en est-on? Nous connaissons maintenant les aspects essentiels de la POO : Encapsulation et abstraction regroupement traitements et données : class X { séparation interface et détails d implémentation :, protected:, private: class C1 : public C2 { Polymorphisme pouvoir être vu de plusieurs façons, abstraction, généricité 2 ingrédients nécessaires : pointeurs et méthodes classes abstraites et méthodes pures collections hétérogènes Qu est-ce que l héritage? En C++, une sous-classe peut hériter de plusieurs super-classes : Classe A Classe C Classe B Comme pour l héritage simple, la sous-classe hérite des super-classes : tous leurs attributs et méthodes (sauf les constructeurs/destructeurs) leur type Informatique II Cours 8 : 3 / 32 Informatique II Cours 8 : 4 / 32
2 Exemple Exemple (2) Un exemple zoologique :.. et un exemple informatique : Vivipare Ovipare istream ios ostream Ovovivipare ifstream iostream ofstream fstream Informatique II Cours 8 : 5 / 32 Informatique II Cours 8 : 6 / 32 Syntaxe : class nomsousclasse: [public] nomsuperclasse1, [public] nomsuperclassen { // class Ovovivipare: public Ovipare, public Vivipare { Ovovivipare(unsigned int, unsigned int); virtual ~Ovovivipare(); protected: bool espece_rare; Constructeurs/destructeurs Comme pour l héritage simple, l initialisation des attributs hérités doit être faite par invocation des constructeurs des super-classes : Syntaxe : SousClasse(liste d arguments) : SuperClasse1(arguments1), SuperClasseN(argumentsN), attribut1(valeur1), attributk(valeurk) {} il n y pas de restriction sur le nombre de super-classes dont la sous-classe peut hériter l ordre de déclaration des super-classes est pris en compte lors de l invocation des constructeurs/destructeurs Lorsque l une des super-classes admet un constructeur par défaut, il n est pas nécessaire de l invoquer explicitement. Informatique II Cours 8 : 7 / 32 Informatique II Cours 8 : 8 / 32
3 Constructeurs/destructeurs (2) Constructeurs/destructeurs (3) Attention! L exécution des constructeurs des super-classes se fait selon l ordre de la déclaration d héritage, et non selon l ordre des appels dans le constructeur! L ordre des appels des destructeurs de super-classes est l inverse de celui des appels de constructeurs class Ovovivipare : public Ovipare, public Vivipare { Ovovivipare(unsigned int, unsigned int); virtual ~Ovovivipare(); protected: bool espece_rare; Ovovivipare::Ovovivipare(unsigned int nb_oeufs, unsigned int duree_gestation) : Vivipare(duree_gestation), Ovipare(nb_oeufs), espece_rare(false) {}} Ordre d invocation des constructeurs : Ovipare(), puis Vivipare() puis le corps de Ovovivipare() Ordre d invocation des destructeurs : Ovovivipare(), puis Vivipare, puis Ovipare Informatique II Cours 8 : 9 / 32 Informatique II Cours 8 : 10 / 32 Accès direct ambigu Accès direct ambigu (2) Comme dans le cas de l héritage simple, une sous-classe peut accéder directement aux attributs et méthodes protégés de ses super-classes et si ces attributs/méthodes portent le même nom dans plusieurs super-classes? class Vivipare { void afficher (ostream&) const; class Ovipare { void afficher (ostream&) const; class Ovovivipare : public Vivipare, public Ovipare {?? int main() { Ovovivipare o; o. afficher(cout); } Attention! l accès o.afficher provoquera une erreur à la compilation même si la méthode afficher n avait pas les mêmes arguments dans les deux classes Ovipare et Vivipare!!! (La raison est qu en C++ il n y a surcharge que dans la même portée. Ici ce n est pas une problème de surcharge, mais un problème de résolution de portée) Première solution : utiliser l opérateur de résolution de portée. int main(){ Ovovivipare o; o.vivipare::afficher(cout); mais Informatique II Cours 8 : 11 / 32 Informatique II Cours 8 : 12 / 32
4 Accès direct ambigu (3) Accès direct ambigu Solution Une des solutions consiste à lever l ambiguïté en indiquant explicitement quelle(s) méthode(s) on souhaite invoquer mais L utilisation de l opérateur de résolution de portée pour résoudre les ambiguïtés de noms des attributs/méthodes n est pas une bonne solution : Il faut ajouter à la liste des déclarations des méthodes/attributs de la sous-classe, une déclaration spéciale indiquant quel(s) méthode(s)/attribut(s) seront invoqué(s) exactement Syntaxe : c est l utilisateur de la classe Ovovivipare qui décide du fonctionnement correct de cette classe, alors que cette responsabilité doit normalement incomber aux concepteurs de la classe using NomSuperClasse::NomAttributOuMethodeAmbigu class Ovovivipare : public Ovipare, public Vivipare { using Vivipare::afficher; //Comme ceci Attention! pas de parenthèse (ni prototype) derrière les noms de méthodes dans un using! Informatique II Cours 8 : 13 / 32 Informatique II Cours 8 : 14 / 32 Accès direct ambigu Solution (2) Une autre bonne solution consiste à incorporer dans la sous-classe une méthode définissant la bonne interprétation de l invocation ambiguë. class Ovovivipare: public Ovipare, public Vivipare { Ovovivipare(unsigned int, unsigned int); virtual ~Ovovivipare(); Il peut se produire qu une super-classe soit incluse plusieurs fois dans une hiérarchie à héritage : Animal Vivipare Animal Ovipare // Solution: void afficher(ostream& out){ Ovipare::afficher(out); out << " mais aussi "; Vivipare::afficher(out); } protected: bool espece_rare; Ovovivipare Les attributs/méthodes de la super-classe seront inclus plusieurs fois! Chaque objet de la classe Ovovivipare possédera deux copies des attributs de la classe Animal. Informatique II Cours 8 : 15 / 32 Informatique II Cours 8 : 16 / 32
5 (2) (3) Pour éviter la duplication des attributs d une super-classe plusieurs fois incluse lors d héritages s, il faut déclarer son lien d héritage avec toutes ses sous-classes comme virtuel. Cette super-classe sera alors dite «virtuelle» (à ne pas confondre avec classe abstraite!!) Animal Syntaxe : Vivipare Ovipare class NomSousClasse: [public] virtual NomSuperClasseVirtuelle class Ovipare: public virtual Animal { class Vivipare: public virtual Animal { A noter que c est la classe pouvant être héritée plusieurs fois qui est virtuelle (i.e. ici la super-super-classe) et non pas directement les classes utilisées dans l héritage (i.e. les super-classes). Ovovivipare Un seul objet de la super-classe Animal est hérité par l héritage commun des sous-classes Ovipare et Vivipare. Informatique II Cours 8 : 17 / 32 Informatique II Cours 8 : 18 / 32 Constructeurs et classes Dans une dérivation non-virtuelle, le constructeur d une sous-classe ne fait appel explicitement qu aux constructeurs de ses super-classes immédiates (et ceci récursivement) Dans une dérivation virtuelle, la super-classe virtuelle est initialisée par sa classe la plus dérivée La sous-classe la plus dérivée doit donc faire appel au constructeur de la super-classe virtuelle Ovovivipare::Ovovivipare(string nom, Habitat habitat, Regime regime, unsigned int nb_oeufs, unsigned int gestation, bool espece_rare) : Animal(nom,habitat,regime), //ICI Ovipare(nb_oeufs), Vivipare(gestation), espece_rare(false) {} Constructeurs et (2) Comment sont gérés les appels au constructeur de la super-classe virtuelle? Si le constructeur d un objet de la classe la plus dérivée est invoqué, les appels explicites au constructeur de la super-classe virtuelle dans les classes intermédiaires sont ignorés. Si la super-classe virtuelle a un constructeur par défaut, il n est pas nécessaire de faire appel à ce constructeur explicitement dans sa classe la plus dérivée. Si l appel explicite au constructeur de la super-classe virtuelle est omis de la sous-classe la plus dérivée et si cette super-classe virtuelle n a pas de constructeur par défaut, la compilation signalera une erreur. Exemple Informatique II Cours 8 : 19 / 32 Informatique II Cours 8 : 20 / 32
6 Constructeurs et (3) Ovovivipare::Ovovivipare(string nom, Habitat habitat, Regime regime, unsigned int nb_oeufs, unsigned int gestation, bool espece_rare) : Animal(nom,habitat,regime), Ovipare(nb_oeufs), Vivipare(gestation), espece_rare(espece_rare) {} les appels explicites au constructeur de la classe Animal dans les constructeurs de Ovipare et Vivipare sont ignorés si Animal avait un constructeur par défaut, il n est pas nécessaire de l invoquer explicitement dans le constructeur de Ovovivipare si Ovovivipare ne fait pas appel explicitement au constructeur de Animal et si Animal n a pas de constructeur pas défaut, il y aura une erreur à la compilation. Ordre des constructeurs/destructeurs Dans une hiérarchie de classes où il existe des super-classes : le soin d initialiser les super-classes incombe à la sous-classe la plus dérivée les constructeurs des super-classes sont invoqués en premier ceux des classes non- le sont ensuite dans l ordre de déclaration de l héritage l ordre d appel des constructeurs de copie est identique l ordre d appel des destructeurs est l inverse de celui des appels de constructeurs Informatique II Cours 8 : 21 / 32 Informatique II Cours 8 : 22 / 32 Ce que j ai appris aujourd hui class nomsousclasse: [public] nomsuperclasse1, [public] nomsuperclassen Collision de noms d attributs/méthodes : c est la sous-classe qui hérite de ces attributs/méthodes qui doit définir le sens de leur utilisation Classe virtuelle : pour éviter qu une sous-classe hérite plusieurs fois d une même super-classe, il faut déclarer les dérivations concernées comme NomSousClasse: [public] virtual NomSuperClasseVirtuelle Constructeur : SousClasse(liste de parametres) : SuperClasse1(arguments1), SuperClasseN(argumentsN), attribut1(valeur1) attributk(valeurk) {} Informatique II Cours 8 : 23 / 32 Qu en C++ une sous-classe peut avoir plusieurs super-classes Comment gérer les collisions de noms d attributs et de méthodes dans une hiérarchie Ce qu est une classe virtuelle et comment l utiliser Informatique II Cours 8 : 24 / 32
7 Retour (pratique) sur les collections hétérogènes Considérons un programme de modélisation graphique manipulant des dessins, lesquels sont des ensembles de figures géométriques. Classiquement on aura : Figure comme classe abstraite, avec différentes sous-classes concrètes (cercles, rectangles, carrés, ) Dessin comme collection hétérogène de figures. Première question : le dessin est-il ou bien a/possède-t-il un tableau dynamique de figures? Retour sur les collections hétérogènes Le dessin est-il ou bien a/possède-t-il un tableau dynamique de figures? Suivant le conseil de la semaine passée, on va choisir ici l encapsulation (le dessin a un tableau de figures). class Dessin { private: vector< Figure* > contenu; Les figures étant abstraites, on a donc bien une collection hétérogène et donc pas le choix pour le contenu du tableau dynamique : pour avoir du polymorphisme, il faut des pointeurs. La question est : doit-on montrer ces pointeurs dans l interface ou non? Informatique II Cours 8 : 25 / 32 Informatique II Cours 8 : 26 / 32 Retour sur les collections hétérogènes Une autre question, reliée, tout aussi importante est : quel est le statut du contenu : personnel ou partagé? En clair, une figure d un dessin donné est elle universelle (partagée par d autres dessins) ou spécifique à ce dessin précis? Par exemple, si je colorie en rouge le cercle 23 du dessin 18, est-ce que seul ce cercle sera rouge ou bien d autres? du même dessin? d autres dessins? Les réponses à ces questions dépendent du cadre général du programme et de sa conception, et n ont pas de réponse unique. Dans le cadre choisi ici (dessins), il semble naturel que les éléments de la collection (les figures) soient uniques et personnels. Informatique II Cours 8 : 27 / 32 Retour sur les collections hétérogènes Si le contenu d un Dessin est personnel, qu en est-il de la copie d un Dessin copie profonde du Dessin ou, plus simple, interdire la copie à "l ancienne": class Dessin { private : // interdire la copie : on met en private Dessin& operator=(const Dessin&); Dessin(const Dessin&); vector<figure*> contenu; class Dessin { // interdire la copie Dessin& operator=(const Dessin&) = delete; Dessin(const Dessin&) = delete; private: vector<figure*> contenu; Informatique II Cours 8 : 28 / 32
8 Interface? Montrer les pointeurs Revenons à la première question : montrer ou non les pointeurs? OUI, ou NON Si oui, alors on aura des prototypes du genre void Dessin::ajoute(Figure* nouvelle); MAIS cela supposera : ➀ que l on ajoute à chaque fois une nouvelle instance de figure ; typiquement : mondessin.ajoute(new Cercle(etc.)); ➁ que l utilisateur s occupe de la gestion mémoire (ne pas oublier les delete, ne pas non plus les faire trop tôt). Il faudra que l utilisateur de la classe Dessin y fasse bien attention! risques de mauvaise programmation Informatique II Cours 8 : 29 / 32 Informatique II Cours 8 : 30 / 32 Cacher les pointeurs Si non, alors on aura des prototype du genre void Dessin::ajoute(Figure const& nouvelle); MAIS cela supposera : ➀ que l on s occupe (nous) de la gestion mémoire (ce qui est plutôt bien car plus localisé, donc moins de risque d erreur) ; ➁ que l on fasse à chaque fois une copie de la figure géométrique reçue comme exemple (puisque l on est dans le cadre «unique et personnel») ; typiquement avoir une copie profonde polymorphique au niveau des Figures. class Figure { virtual Figure* copie() const = 0; class Cercle : public Figure { virtual Cercle* copie() const { return new(cercle(*this)); } Synthèse Conseils (repris de la semaine passée) : Tant que faire se peut de donner la propriété à la collection et dans ce cas d utiliser des unique_ptr (hors cours) en ou des pointeurs à la C, mais gérés en interne de la collection sinon (si vous ne pouvez pas donner la propriété à la collection), d utiliser des pointeurs à la C et transférer des adresses d objets existants plus longtemps que la collection elle-même (il faudra donc le garantir!) On parle de «retour covariant» Informatique II Cours 8 : 31 / 32 Informatique II Cours 8 : 32 / 32
Génie Logiciel I. Cours VI - Typage statique / dynamique, fonctions virtuelles et classes abstraites, flots d entrées / sorties, et string
Génie Logiciel I Cours VI - Typage statique / dynamique, fonctions virtuelles et classes abstraites, flots d entrées / sorties, et string Nicolas Kielbasiewicz C.D.C.S.P./I.S.T.I.L./I.C.J. Filière M.A.M.
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é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é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é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é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é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é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é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étail1.6- Génération de nombres aléatoires
1.6- Génération de nombres aléatoires 1- Le générateur aléatoire disponible en C++ 2 Création d'un générateur aléatoire uniforme sur un intervalle 3- Génération de valeurs aléatoires selon une loi normale
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é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é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é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é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é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étailProgrammation Orientée Objet
Université de Pau et des Pays de l Adour Institut Universitaire de Technologie des Pays de l Adour Département Réseaux et Télécommunications 371, rue du Ruisseau BP 201 40004 Mont-de-Marsan Cedex tél :
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é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étailAvertissement : Ce cours suppose la connaissance et la maîtrise du langage C CONTENU DU COURS BIBLIOGRAPHIE
Enseignement : GI 62 - C++ - Programmation orienté objet (C++) Objectif : Ce module se situe dans la continuité des modules (ii12) et UEL RAN Informatique et permet d'acquérir les bases de la modélisation
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é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étailGOL502 Industries de services
GOL502 Industries de services Conception d un service Partie IIb Version 2013 Introduction Conception d un service partie IIb Nous verrons dans ce chapitre Modélisation d un service; Langage de modélisation
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é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 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étailCours 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étailEncapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.
Encapsulation L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. La visibilité dépend des membres : certains membres peuvent être visibles et d'autres
Plus en dé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é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é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étailDépartement Automatisation et Informatisation Année 2005-2006. Programmation en C++ Institut des Sciences et Techniques de l Ingénieur d Angers
Département Automatisation et Informatisation Année 2005-2006 Programmation en C++ Institut des Sciences et Techniques de l Ingénieur d Angers 1 Bertrand Cottenceau 1. Introduction du cours de C++...3
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étailGénéralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code
Généralités javadoc Université de Nice - Sophia Antipolis Richard Grin Version 1.4.1 8/2/11 javadoc produit de la documentation en partant de commentaires particuliers insérés dans le code source des classes
Plus en dé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étailC++ : PROGRAMMATION-OBJET
Cours d informatique 2003/2004 C++ : PROGRAMMATION-OBJET SOMMAIRE : Chapitre 1 : Le concept d objet........ 1 1.1 Objet usuel.............. 1 1.2 Objet informatique Classe........ 2 1.3 Encapsulation.............
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é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é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é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étailTP : Gestion d une image au format PGM
TP : Gestion d une image au format PGM Objectif : L objectif du sujet est de créer une classe de manipulation d images au format PGM (Portable GreyMap), et de programmer des opérations relativement simples
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é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étailCours d Algorithmique et de Langage C 2005 - v 3.0
Cours d Algorithmique et de Langage C 2005 - v 3.0 Bob CORDEAU cordeau@onera.fr Mesures Physiques IUT d Orsay 15 mai 2006 Avant-propos Avant-propos Ce cours en libre accès repose sur trois partis pris
Plus en détail30.avr.10 Présentation miniprojet. 9.mars.10 Cours 3 4.mai.10 Cours C++ 1. 16.mars.10 Cours 4 11.mai.10 Cours C++ 2
2ème partie de cours: 23.fév.10 Cours 1 20.avr.10 TEST 24.fév.10 TP1 21.avr.10 miniprojet 26.fév.10 TP réserve 23.avr.10 miniprojet 2.mars.10 Cours 2 27.avr.10 Présentation miniprojet 3.mars.10 TP2 28.avr.10
Plus en détailBases Java - Eclipse / Netbeans
Institut Galilée PDJ Année 2014-2015 Master 1 Environnements Java T.P. 1 Bases Java - Eclipse / Netbeans Il existe plusieurs environnements Java. Il est ESSENTIEL d utiliser la bonne version, et un environnement
Plus en détailObjectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)
Objectifs du cours d aujourd hui Informatique II : Cours d introduction à l informatique et à la programmation objet Complexité des problèmes Introduire la notion de complexité d un problème Présenter
Plus en détail2 e édition JAVA 5 et 6. Jérôme Bougeault. TSoft et Groupe Eyrolles, 2003, 2008, ISBN : 978-2-21212250-3
2 e édition JAVA 5 et 6 Jérôme Bougeault TSoft et Groupe Eyrolles, 2003, 2008, ISBN : 978-2-21212250-3 Classes et objets Les constructeurs Propriétés Les méthodes L héritage Les interfaces Les relations
Plus en détailEPREUVE 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é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é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é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é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étailCours de Systèmes d Exploitation
Licence d informatique Synchronisation et Communication inter-processus Hafid Bourzoufi Université de Valenciennes - ISTV Introduction Les processus concurrents s exécutant dans le système d exploitation
Plus en détailCours 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étailProgrammation stochastique
Programmation stochastique (Partie 1) IFT-6512 Hiver 2008 Présentation succinte COIN-OR? COmputational INfrastructure for Operations Research. Préalablement, COIN-OR tenait pour Common Optimization INterface
Plus en détailIRL : Simulation distribuée pour les systèmes embarqués
IRL : Simulation distribuée pour les systèmes embarqués Yassine El Khadiri, 2 ème année Ensimag, Grenoble INP Matthieu Moy, Verimag Denis Becker, Verimag 19 mai 2015 1 Table des matières 1 MPI et la sérialisation
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étailIFT2255 : Génie logiciel
IFT2255 : Génie logiciel Chapitre 6 - Analyse orientée objets Section 1. Introduction à UML Julie Vachon et Houari Sahraoui 6.1. Introduction à UML 1. Vers une approche orientée objet 2. Introduction ti
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é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é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é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é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é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é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é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étailIntroduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr
Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Mars 2002 Pour Irène et Marie Legal Notice Copyright c 2002 Patrick Cégielski Université
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étailIntroduction à C++ et à wxwidgets
Introduction à C++ et à wxwidgets Master IGC 1ère année Année universitaire 2011/2012 Christophe Renaud Version 1.5 19/09/2011 Introduction Objectifs du cours Introduction au langage objet C++ Introduction
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é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étailMachines virtuelles fonctionnelles (suite) Compilation ML Java
Machines virtuelles fonctionnelles (suite) Compilation ML Java Cours de Compilation Avancée (MI190) Benjamin Canou Université Pierre et Maire Curie Année 2011/2012 Semaine 3 Machines virtuelles fonctionnelles
Plus en détailIntroduction 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é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é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étailPatrons de Conception (Design Patterns)
Patrons de Conception (Design Patterns) Introduction 1 Motivation Il est difficile de développer des logiciels efficaces, robustes, extensibles et réutilisables Il est essentiel de comprendre les techniques
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étailLes 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étailCours Programmation Système
Cours Programmation Système Filière SMI Semestre S6 El Mostafa DAOUDI Département de Mathématiques et d Informatique, Faculté des Sciences Université Mohammed Premier Oujda m.daoudi@fso.ump.ma Février
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é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étailPrésentation. Au programme. Fonctionnement. A l issue de ce module vous devriez...
Au programme Conception Orientée Objet Jean-Christophe Routier Licence mention Informatique Université Lille 1 Présentation L UE COO est le prolongement immédiat de l UE POO du S4 informatique. cf. http://portail.fil.univ-lille1.fr/portail/ls4/poo
Plus en détailMaster Modélisation Aléatoire Paris VII, Cours Méthodes de Monte Carlo en nance et C++, TP n 2.
Master Modélisation Aléatoire Paris VII, Cours Méthodes de Monte Carlo en nance et C++, TP n 2. Techniques de correction pour les options barrières 25 janvier 2007 Exercice à rendre individuellement lors
Plus en détailNFP 121. Java et les Threads. Présentation : Thierry Escalarasse Mai 2007
NFP 121 Java et les Threads Présentation : Thierry Escalarasse Mai 2007 Plan du cour Présentation de la notion de Threads La classe Thread L interface Runnable Les états d un thread La Synchronisation
Plus en détailTD/TP PAC - Programmation n 3
Université Paris Sud Licence d informatique/iup-miage2 Année 2004-2005 Auteur : Frédéric Vernier Semaine : 11-16 octobre 2004 Conditions : sur machine avec les outils standards java web: http://vernier.frederic.free.fr/indexpac.html
Plus en détailAlgorithmique et Programmation, 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étailChapitre VIII. Les bases de données. Orientées Objet. Motivation
Chapitre VIII Motivation Le modèle relationnel connaît un très grand succès et s avère très adéquat pour les applications traditionnelles des bases de données (gestion) Les bases de données Orientées Objet
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étailIN 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étailProgrammation 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étail2. Comprendre les définitions de classes
Conception objet en Java avec BlueJ une approche interactive 2. Comprendre les définitions de classes Analyser le contenu des classes David J. Barnes, Michael Kölling version française: Patrice Moreaux
Plus en détailÉvaluation et implémentation des langages
Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation
Plus en détailClaude 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étailProgrammation système en C/C++
Programmation système en C/C++ Jean-Baptiste Vioix (jb.vioix@free.fr) LE2I - ENESAD http://jb.vioix.free.fr 1-41 Programmation en C/C++ sous Unix Il existe des très nombreux outils de développement sous
Plus en détailIntroduction à la programmation concurrente
Introduction à la programmation concurrente Moniteurs Yann Thoma Reconfigurable and Embedded Digital Systems Institute Haute Ecole d Ingénierie et de Gestion du Canton de Vaud This work is licensed under
Plus en détailUtiliser Java sans BlueJ
Conception objet en Java avec BlueJ une approche interactive Utiliser Java sans BlueJ Michael Kölling version française: Patrice Moreaux Rédigé avec 1.0 Conception objet en Java avec BlueJ une approche
Plus en détailSupport de cours et TD Programmation Orientée Objet
REPUBLIQUE TUNISIENNE MINISTERE DE L ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE Institut Supérieur des Etudes Technologiques de Médenine Département Informatique Support de cours et TD Programmation
Plus en détailInfo0101 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