Classes, instances, objets [oo] Support de Cours Karine Zampieri, St´ ephane Ri

Classes, instances, objets [oo] Support de Cours Karine Zampieri, St´ ephane Rivi` ere Unisciel algoprog Version 20 mai 2018 Table des mati` eres 1 Approche imp´ erative v.s. objet 3 1.1 Approche imp´ erative – Approche objet . . . . . . . . . . . . . . . . . . . 3 1.2 Les types et traitements (rappel) . . . . . . . . . . . . . . . . . . . . . . 4 1.3 D´ efinitions OO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.4 Dualit´ es entre les approches . . . . . . . . . . . . . . . . . . . . . . . . . 6 2 Classes et instances 7 2.1 D´ eclaration Classe, Instances . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2 D´ eclaration d’un attribut . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.3 ´ Ecriture d’une m´ ethode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.4 Acc` es aux membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3 Encapsulation et interface 11 3.1 Le concept d’encapsulation . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.2 Droits d’acc` es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.3 M´ ethodes accesseurs-mutateurs . . . . . . . . . . . . . . . . . . . . . . . 14 3.4 Modifieurs et s´ electeurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.5 Exemples : Propri´ et´ es encapsul´ ees (property) (Juillet 2017) . . . . . . . . 16 4 R` egles OO et Structeurs 18 4.1 R` egles OO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.2 Constructeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.3 Destructeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 5 Compl´ ements 21 6 Terminologie objet 21 Java - Classes, instances, objets 1 Unisciel algoprog – oo00cours-texte, May 20, 2018 2 Mots-Cl´ es Conception Objet, Classe, Instance, Encapsulation, Interface ■ Requis Axiomatique imp´ erative ■ Difficult´ e • ◦◦(2 h) ■ Introduction L’un des objectifs de la conception objet est de fournir des outils pour organiser de fa¸ con plus efficace les donn´ ees et les traitements en les regroupant dans des entit´ es appel´ ees objets. Les notions mises en oeuvre par les objets sont : abstraction, encapsulation, h´ eritage et polymorphisme. Ce module introduit les bases de l’axiomatique objet (abstraction, encapsulation). Il pr´ esente l’approche imp´ erative versus objet, expose les notions d’interface et d’encap- sulation puis d´ efinit l’axiomatique objet. On termine par un r´ esum´ e de la terminologie objet abord´ ee dans ce module. ■ Unisciel algoprog – oo00cours-texte, May 20, 2018 3 1 Approche imp´ erative v.s. objet 1.1 Approche imp´ erative – Approche objet Donn´ ees et Traitements Dans l’axiomatique imp´ erative, ou Programmation Proc´ edurale PP, les donn´ ees sont s´ epar´ ees des traitements (fonctions et proc´ edures) qui les utilisent. Tandis que dans l’axiomatique orient´ ee-objet (OO), les donn´ ees et les traitements concernant ces don- n´ ees sont regroup´ es dans des entit´ es appel´ ees objets. Organisation des programmes R´ eciproquement, l’organisation des algorithmes/programmes imp´ eratifs conduit ` a une s´ eparation des donn´ ees et traitements. Tandis qu’un algorithme/programme objet est un r´ eseau d’objets qui communiquent par l’envoi de messages pour r´ ealiser un traite- ment. Unisciel algoprog – oo00cours-texte, May 20, 2018 4 1.2 Les types et traitements (rappel) Le type d’une variable Il d´ etermine un ensemble de valeurs possibles pour la variable et les op´ erations qu’il est possible de faire sur cette variable. Il peut ˆ etre un type de base (Entier, Réel, Caractère, Booléen...) ou d´ efini par l’utilisateur. Les traitements Pour effectuer des traitements sur les variables, on d´ efinit des modules (fonctions et proc´ edures). Ces derniers sont d´ efinis en dehors des types de donn´ ees qu’ils manipulent. Par cons´ equent, les variables manipul´ ees doivent ˆ etre pass´ ees en param` etre des modules qui les manipulent. Sch´ ema synth´ etique Unisciel algoprog – oo00cours-texte, May 20, 2018 5 1.3 D´ efinitions OO Objet, ´ etat, comportement Un objet est la mod´ elisation d’une entit´ e du monde r´ eel, laquelle est concr` ete (une voi- ture, un stylo, un client...) ou abstraite (une entreprise, le temps, une relation bancaire...). Il est caract´ eris´ e par : • Une identit´ e exprim´ ee par son nom. • Ce qu’il est : son ´ etat (c.-` a-d. les donn´ ees sur lui-mˆ eme). • Ce qu’il sait faire : son comportement. Classe, type, instance, objet Un objet fait partie d’une cat´ egorie d’objets appel´ ee classe. La classe est le type de l’objet. Voici diff´ erentes mani` eres de dire la mˆ eme chose : • Un objet est une instance de classe. • Un objet est une variable dont le type est la classe. • Un objet est un exemplaire d’une classe. • La classe est un moule ` a partir duquel on peut faire des gˆ ateaux : les objets. Jargon de l’axiomatique objet CLASSE = TYPE INSTANCE = OBJET Attributs, M´ ethodes Une classe encapsule (regroupe) dans la mˆ eme entit´ e informatique les donn´ ees et les traitements de ces donn´ ees. Elle est compos´ ee : • D’attributs (data attributes) : champs de donn´ ees ou propri´ et´ es repr´ esentant l’´ etat des objets. • De m´ ethodes (methods) : fonctions ou proc´ edures applicables aux objets qui condi- tionnent son comportement. Relation fondamentale OBJET = ATTRIBUTS + METHODES Unisciel algoprog – oo00cours-texte, May 20, 2018 6 1.4 Dualit´ es entre les approches Les classes (resp. les objets) sont ` a l’axiomatique objet ce que les types (resp. les variables) sont ` a l’axiomatique imp´ erative. Au niveau des d´ eclarations • Celle d’une classe se fait de fa¸ con similaire ` a la d´ eclaration d’un type structur´ e. • Et celle d’une instance ` a la d´ eclaration d’une variable classique. Diff´ erences au niveau du regroupement • En OO : Les donn´ ees et les traitements sont encapsul´ es dans une classe. • En PP : Les donn´ ees sont regroup´ ees dans une structure mais les traitements sont d´ efinis ` a part. Diff´ erences au niveau des param` etres • En OO : Les m´ ethodes ne prennent pas en param` etre l’objet qu’elles manipulent, puisqu’une m´ ethode est toujours appel´ ee (invoqu´ ee) par un objet et la m´ ethode appel´ ee sait toujours quel objet l’a appel´ ee. • En PP : Les sous-programmes prennent en param` etre le nom de la structure ` a manipuler. Utilisation des traitements • En OO : C’est l’objet o qui fait appel au traitement m ` a effectuer : o.m(...). • En PP : Il faut appeler le traitement m avec l’objet o en param` etre : m(o,...). R´ esum´ e En OO, tous les traitements (les actions) sont des m´ ethodes et donc appel´ ees (r´ ealis´ ees) par des objets. Unisciel algoprog – oo00cours-texte, May 20, 2018 7 2 Classes et instances 2.1 D´ eclaration Classe, Instances D´ eclaration d’une classe class K { ... } Explication Annonce (d´ eclare ou d´ efini) la classe nomm´ ee K. D´ eclaration/Cr´ eation d’une instance K o = new K(...); Explication D´ eclare une instance nomm´ ee uploads/Sante/ oo00cours-texte-java.pdf

  • 26
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Apv 01, 2022
  • Catégorie Health / Santé
  • Langue French
  • Taille du fichier 0.3775MB