Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.

Slides:



Advertisements
Présentations similaires
La programmation orientée objet avec Java L3-MIAGE Plan
Advertisements

Programmation Orienté Objet en C++
C++ 6ème cours Patrick Reuter maître de conférences
1 Quelques précisions sur l'héritage. 2 Signification de super.f() appel à la méthode f() masquée super : désigne l'objet appelant comme s'il était de.
SI3 MAM3 Hydro Nathan Cohen Igor Litovsky Christophe Papazian
Langages objet Définitions Traduction des méthodes en C++
(Classes prédéfinies – API Java)
C.
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance
PHP5 poo.
Programmation Orientée Objet (POO)
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
Leçon 3 : Héritage IUP 2 Génie Informatique
Principes de programmation (suite)
Algorithmique et Programmation
Leçon 6 : Structures de données dynamiques IUP 2 Génie Informatique Méthode et Outils pour la Programmation Françoise Greffier.
Bibliothèque standard du C++
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
C++ : classes Introduction aux Langages Orientés Objets
Les Classes les structures en C (struct) regroupent des variables : structuration de l'analyse mais problèmes de cohérence problèmes de sécurité d'accès.
77 Utilisation des classes (suite). 7-2 Objectifs A la fin de ce cours, vous serez capables de : Définir des méthodes surchargées dans une classe Fournir.
Vers la conception objet
POO : Objets et classes (Rappels)
Langage Oriente Objet Cours 2.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 5 – Héritage, Interfaces et Listes génériques.
Leçon 2 : Surcharge des opérateurs IUP 2 Génie Informatique Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Structures de données IFT-2000
Structures de données IFT-10541
Structures de données IFT Abder Alikacem Gestion des exceptions Département dinformatique et de génie logiciel Édition Septembre 2009.
Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen
Contrôle de types Les types en programmation Expressions de types Un contrôleur de types Equivalence de types Conversions de types Généricité.
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
Types de données abstrait et mécanismes d'encapsulation
Méthode et Outils pour la Programmation
Structures de données IFT-10541
INF1101 Algorithmes et structures de données
Procédures et fonctions
Patrons de conceptions de créations
Héritage Licence Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier.
Structures de données IFT-2000
Héritage et composition
2.1 - Historique Chapitre 2 : Introduction au langage C++
Le langage C Rappel Pointeurs & Allocation de mémoire.
4 Introduction des objets. Les chaînes et tableaux
La notion de type revisitée en POO
11/04/ L'héritage Cours 7 Cours 7.
Variables et accès en Java. Déclaration des variables final transient static private Printer hp; transient => ne doivent pas être sérialisées volatile.
Créer des packages.
12/04/ Le polymorphisme Cours 8 Cours 8.
Cours C++ Fonctions Surcharge d’opérateurs Passage d’arguments
Tutorat en bio-informatique
5ième Classe (Mercredi, 19 octobre) Prog CSI2572.
PHP 7° PARTIE : PROGRAMMATION OBJET
Tutorat en bio-informatique Le 14 novembre Au programme… Les objets –Propriétés (attributs) –Constructeurs –Méthodes.
C++ L’HERITAGE Fayçal BRAÏKI DUT INFORMATIQUE.
Réaliser par: Sadok Amel Cheboui hassiba
Les classes présenté par: RAHMOUNE RIME / ZEKRI SELMA.
Les classes et les objets Les données finales class A { … private final int n = 20 ; // la valeur de n est définie dans sa déclaration … } class A { public.
Les surcharges d'opérateurs
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Jean-Jacques Girardot
ISBN Chapitre 10 L'implémentation des sous- programmes.
Classe 1 CSI2572 Autres modificateurs de déclaration de variables: & volatile & register & static & auto & extern & const volatile Indique au compilateur.
Les classes Introduction aux Langages Orientés Objets
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
Chapitre VII Techniques plus avancées à travers le concept de classe.
Conception de Programmes - IUT de Paris - 1ère année Quelques éléments du langage C++ Les références La surcharge de fonctions Les fonctions «
Langage de Programmation Orientée Objet : C++
Conception de Programmes - IUT de Paris - 1ère année Les classes Introduction Déclaration d’une classe Utilisation d’une classe Définition des.
Transcription de la présentation:

Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté

notion dobjet Classe / instance Interface / implantation Classification des méthodes Constructeur(s), destructeur Méthodes implicites pointeur this

Une CLASSE est un MODELE saisir afficher périmètre Méthode La classe rectangle fournit des méthodes Une application Utilise une (ou plusieurs) classe(s) #include... Par activation des méthodes fournies par la classe R. saisir ()

Classe et instance de classe Une classe est un modèle Méthodes class rectangle {... Une application Rectangle R Crée une instance appelée R Une instance est un représentant du modèle # include "rectangle.h" void main (void) {rectangle R; Une classe est définie à la compilation de lapplication Une instance est créée à l exécution de lapplication

ACTIVATION D UNE METHODE # include "rectangle.h" void main (void) {rectangle R; R.saisir ( );... Toute méthode est déclenchée par une instance SYNTAXE : identificateur instance. Appel méthode

CONFIDENTIALITE # include "rectangle.h" void main (void) {rectangle R; R.saisir ( );... Application Seule partie accessible La seule partie accessible pour une application utilisatrice d une classe est la section public de cette classe. class rectangle {public : rectangle ( void); //constructeur par défaut void saisir (void);... }; Implantation classe rectangle

PRINCIPE de confidentialité Principe : Seules les informations déclarées publiques dans une classe sont accessibles à lutilisateur de cette classe. pour garantir le fonctionnement correct dun objet # include "rectangle.h" void main (void) {rectangle R; R.saisir ( ); R.lo = 4;... Instruction illicite TOUT LE RESTE EST DU DOMAINE PRIVE (NON ACCESSIBLE DE l EXTERIEUR).

REGLES D ACCESSIBILITE ApplicationClasse Les membres d une classe ont accès à tous les autres membres de cette classe Seuls les membres de la section public de (des) classe(s) utilisées(s) sont accessibles.

DISTINCTION entre: les fonctionnalités d un objet : INTERFACE et le codage de celles-ci : IMPLANTATION INTERFACE /IMPLANTATION INTERFACE d une classe est une partie conceptuelle qui est distincte et qui précède l IMPLANTATION de celle-ci. Interface = mode d emploi = protocole d utilisation = partie descriptive Implantation = représentation physique de l objet = code des méthodes

CONCEVOIR UNE CLASSE Etape 1 : spécifier une méthode Exemple : saisie du rectangle class rectangle {public : //IC est construite void saisir (void); // longueur et largeur de IC sont saisies

CODER UNE CLASSE Etape 2 : implanter cette méthode Exemple : méthode de saisie du rectangle class rectangle {public :... private : double lo; double la; }; void rectangle::saisir(void) {cin >> lo; cin >> la; } # include

Organisation d'une INTERFACE L interface d une classe est la partie visible depuis l extérieur, par l utilisateur de la classe. Elle décline les méthodes fournies par la classe. Facteur de qualité : Une classification des méthodes permettraclassification des méthodes à l utilisateur de la classe de trouver facilement les méthodes dont il a besoin.

CONSTRUCTEUR(S) Un constructeur est une méthode qui permet de créer une instance et qui peut aussi initialiser létat de l'instance créée SYNTAXE : prototype d un constructeur nom de la classe (paramètres(s) éventuel(s)) Exemple : rectangle(void); Toute classe comprend au moins un constructeur

CONSTRUCTEUR(S) Il existe trois types de constructeur : constructeur par défaut constructeur par initialisation constructeur par copie

Constructeur par défaut SYNTAXE : prototype du constructeur par défaut nom de la classe (void); # include "rectangle.h" void main (void) {rectangle R;... Appel du constructeur par défaut R.lo Mémoire statique R.la ??? rectangle (void); // IC est construite vide

Constructeur par initialisation SYNTAXE : prototype du constructeur par initialisation nom de la classe (paramètres d initialisation); Exemple : # include "rectangle.h" void main (void) {rectangle R (10,6);... Appel du constructeur par initialisation R.lo Mémoire statique R.la 10 6 rectangle (double x, double y); //IC est construite et lo=x, la =y

Constructeur par copie SYNTAXE : prototype du constructeur par copie nom_classe(const nom_classe&); Exemple : Le constructeur par copie peut jouer un des rôles suivants : Création d une instance par recopie d une autre instance Transmission d'argument par valeur Retour d'une valeur par une fonction rectangle (const rectangle& B); //IC est construite IC=B

Constructeur par copie # include "rectangle.h" void main (void) {rectangle R (10,6); rectangle R2 (R); rectangle R3 =R;... Appel du constructeur par copie R.lo Mémoire statique R.la 10 6 R2.lo10R3.lo10 R2.la6 R3.la6

Constructeur par copie On surchargera (redéfinira) le constructeur par copie lorsque la copie des valeurs des attributs ne réalisera pas une « vraie » copie ( ex:gestion par pointeurs ). Dans ce cas il sera impératif de redéfinir le constructeur par copie, car l'opération implicite de copie est déclenchée automatiquement dans de nombreux contextes. IMPLANTATION Cette méthode existe par défaut dans toute classe. Le compilateur fait par défaut une copie des valeurs des attributs de l'instance. Cette copie est satisfaisante pour dupliquer la longueur et la largeur d'un rectangle.

DESTRUCTEUR SYNTAXE : prototype du destructeur ~ nom_classe (void); Exemple : Le destructeur joue le rôle suivant : Une instance a une durée de vie correspondant au bloc dans lequel elle est déclarée. En fin de bloc l'instance est détruite par un appel automatique du destructeur. L exécution du destructeur génère une remise en l état des ressources (espace mémoire) utilisée à la création de l instance. ~ rectangle (void); //destructeur

DESTRUCTEUR : APPEL # include "rectangle.h" void main (void) {rectangle R; R.saisir ( );... } Appel du destructeur sur l instance R

DESTRUCTEUR : implantation Autre cas : gestion dynamique de la mémoire Lorsque le constructeur induit une allocation de mémoire ( new en C++) alors le destructeur comprend des instructions ( delete en C++) permettant de libérer la mémoire précédemment allouée. Action vide pour la classe rectangle car il n'y a pas de ressources mémoire particulières à gérer. rectangle :: ~ rectangle (void) { }

METHODES IMPLICITES Les méthodes suivantes sont prédéfinies pour chaque classe: constructeur par défaut constructeur par copie destructeur affectation tests d égalité # include "rectangle.h" void main (void) {rectangle R,R2; R.saisir ( ); R2=R; //affectation } Les méthodes implicites peuvent être redéfinies. Il est parfois impératif de le faire (gestion dynamique de la mémoire).

Le pointeur this class rectangle {public : //IC void afficher (void); //longueur et largeur de IC sont affichées Remarque : il nest pas nécessaire d expliciter un paramètre représentant l instance courante (IC). Mécanisme : chaque méthode a un premier paramètre implicite pour représenter l instance courante. Ce paramètre a pour identificateur (en C++) : this this désigne un pointeur sur IC

Le paramètre this void rectangle::afficher (void) {cout << lo; cout << la; } //cout lo; //cout la; ILLUSTRATION : implantation de la méthode afficher