Www.supinfo.com Copyright © SUPINFO. All rights reserved La Programmation Orientée Objet en C# 2.0.

Slides:



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

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.
Programmation Objet en JAVA Mise à Niveau
PHP5 poo.
Leçon 3 : Héritage IUP 2 Génie Informatique
Introduction à la POO: Les classes vs les objets
Chapitre III Héritage (début)
Programmation orientée objet
POO-L3 H. Fauconnier1 Chapitre IV 1. classe Object, clonage 2. interfaces 3. classes internes et imbriquées.
Langage Oriente Objet Cours 4.
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
© 2007 P. Van Roy. All rights reserved. FSAB1402: Informatique 2 Le Langage Java et les Exceptions Peter Van Roy Département dIngénierie Informatique,
C++ : classes Introduction aux Langages Orientés Objets
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.
Classes abstraites et Interfaces
POO : Objets et classes (Rappels)
Langage Oriente Objet Cours 2.
Structures de données IFT-2000
Structures de données IFT-10541
Programme de baccalauréat en informatique Programmation Orientée Objets IFT Thierry EUDE Module 7 : Classes et fonctions paramétrables Département.
66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser.
Introduction au paradigme orienté-objet (suite)
Design Pattern: Decorator
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
Langages orientés objets
Chapitre III Héritage. POO-L3 H. Fauconnier2 Chapitre III: Héritage A) Extensions généralités Affectation et transtypage B) Méthodes Surcharge et signature.
Cours 4 Héritage (suite).
COURS DE PROGRAMMATION ORIENTEE OBJET :
CSI1502 Principes fondamentaux en conception des logiciels
Structures de données IFT-2000 Abder Alikacem L’héritage en C++ Département d’informatique et de génie logiciel Édition Septembre 2009.
Héritage Licence Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier.
Héritage et composition
Travaux Pratiques Représentation des connaissances
Objectifs À la fin de ce cours, vous serez capables de :
JavaScript Nécessaire Web.
4 Introduction des objets. Les chaînes et tableaux
LIFI-Java 2004 Séance du Mercredi 22 sept. Cours 3.
Cours n°3 rappels. POO-L3 H. Fauconnier2 Entrée-sortie public static void main(String[] args) { // sortie avec printf ou double a = 5.6d ; double b =
La notion de type revisitée en POO
Propriétés. Propriétés ► Les propriétés peuvent être visibles dans les environnements de scripts ► Les propriétés peuvent être accédées par programmation.
Cours 61 6 La sécurité, Portée, Visibilité Programmer avec sécurité.
ESA Ecole Supérieure des Affaires Ernaelsten Gérard - Frédéric FiléePage 285 Cours de Programmation Web : PHP Chapitre 5 : Orienté objet en PHP.
La Modélisation Orientée Objet Concevoir un programme : modélisation du problème à résoudre Notion de programme : machine de Turing Pouvoir d’expression.
Programmation objet. Les classes Une classe représente un concept Une classe est :  un module : elle regroupe la déclaration de données et les opérations.
11/04/ L'héritage Cours 7 Cours 7.
Programmation objet La base.
7ième Classe (Mardi, 24 novembre) CSI2572. Devoir 3 ?
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.
Cours C++ Fonctions Surcharge d’opérateurs Passage d’arguments
© 2005 P. Van Roy. All rights reserved. FSAB1402: Informatique 2 Le Langage Java Peter Van Roy Département d’Ingénierie Informatique, UCL
Tutorat en bio-informatique
5ième Classe (Mercredi, 19 octobre) Prog CSI2572.
C++ L’HERITAGE Fayçal BRAÏKI DUT INFORMATIQUE.
Réaliser par: Sadok Amel Cheboui hassiba
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 3 – Classes et objets en Java Master 1 SIGLIS1 Java Lecteur - Chapitre 3 Classes et objets en Java.
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
Cours du 5 novembre.
Héritage H. Batatia. plan Notion (que signifie l’héritage) Ecriture en java Héritage multiple (interdit) Instanciation (partie propre et partie héritée)
Les classes Introduction aux Langages Orientés Objets
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
Introduction à la programmation objet avec java
Héritage Conception par Objet et programmation Java
Campus-Booster ID : Copyright © SUPINFO. All rights reserved La programmation objet, un fondement de la programmation évènementielle.
Introduction à la Programmation Orientée Objet
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:

Copyright © SUPINFO. All rights reserved La Programmation Orientée Objet en C# 2.0

Objectifs de ce module Comprendre la programmation orientée objet. Voir l’implémentation de la POO en C#2.0. Connaître des spécificités du C#2.0. En suivant ce module vous allez: La Programmation Orientée Objet en C# 2.0

Plan du module Notions fondamentales de la Programmation Objet en C#2.0. Notions avancées de la Programmation Objet en C#2.0. Héritage en C# 2.0. Surcharge d’opérateurs, délégués et évènements. Voici les parties que nous allons aborder: La Programmation Orientée Objet en C# 2.0

Notions fondamentales de la Programmation Orientée Objet en C#2.0. La Programmation Orientée Objet en C# 2.0

Plan de la partie Classes et Objets Comparaison entre Classe et Structure L’encapsulation Données de l’objet, données statiques et méthodes statiques C# 2.0 et l’Orientation Objet Définition de systèmes orientés objet Voici les chapitres que nous allons aborder: Notions fondamentales de la Programmation Orientée Objet en C#2.0

Classes et Objets Notions fondamentales de la Programmation Orientée Objet en C#2.0 Classe - Une classe est la définition d’un ensemble d’entités qui partagent les mêmes attributs, les mêmes opérations et la même sémantique.

Classes et Objets Notions fondamentales de la Programmation Orientée Objet en C#2.0 Phare Toit ouvrant Portière Ouvrir Roue Allumer Tourner Exemple : Cas d’une voiture

Classes et Objets Notions fondamentales de la Programmation Orientée Objet en C#2.0 Objet - Un objet est une instance d’une classe et est caractérisé par une identité, un état et un comportement.

Comparaison entre Classe et Structure Notions fondamentales de la Programmation Orientée Objet en C#2.0  Peuvent contenir d’autres types comme membres.  Peuvent avoir des membres (constructeurs, méthodes, propriétés, champs, etc.).  Chaque membre peut avoir un modificateurs différent (private, public, protected, etc.).  Peuvent implémenter des interfaces.  Peuvent lever des évènements et déclarer des délégués. Quelques Points communs

Comparaison entre Classe et Structure Notions fondamentales de la Programmation Orientée Objet en C#2.0  Une structure est de type valeur, une classe est de type référence.  Par défaut tout membre d’une structure est public alors qu’il est privé pour une classe.  Une structure ne peut être héritée, une classe oui.  Une structure ne nécessite pas de constructeur  Tout champ d’une structure ne peut être initialisé que s’il est déclaré static ou const Quelques Différences

L’encapsulation Notions fondamentales de la Programmation Orientée Objet en C#2.0 Encapsulation - Mécanisme permettant de rassembler les attributs et méthodes propres à un type donné afin d’en restreindre l’accès et/ou d’en faciliter l’utilisation et la maintenance.

L’encapsulation Notions fondamentales de la Programmation Orientée Objet en C#2.0 Modificateurs d’accès private, public, etc. Accessors Permettent de récupérer la valeur d’un champ GetData() { … } Mutators Permettent de définir la valeur d’un champ SetData() { … } L’encapsulation regroupe :

Données de l’objet, données statiques et méthodes statiques Notions fondamentales de la Programmation Orientée Objet en C#2.0 Chaque objet possède des données propres Données statiques Propres à toutes les instances de la classe Méthodes statiques Accessibles par toutes les instances Peuvent utiliser des données statiques

Données de l’objet, données statiques et méthodes statiques Notions fondamentales de la Programmation Orientée Objet en C#2.0 Compte Epargne Solde Taux = 3,14% Compte A Solde = 315€ Compte B Solde = 567€ Exemple: Cas d’un compte épargne Compte Epargne Solde Taux = 3,16%

C# 2.0 et l’orientation objet Notions fondamentales de la Programmation Orientée Objet en C#2.0 Déclaration de classe : public class MyClass { private int _theValue; public void Increment() { _theValue++; } Classe Méthode Champ

C# 2.0 et l’orientation objet Notions fondamentales de la Programmation Orientée Objet en C#2.0 Instanciation : class Program { public static void Main() { MyClass theClass = new MyClass(); } Déclaration et Instanciation

C# 2.0 et l’orientation objet Notions fondamentales de la Programmation Orientée Objet en C#2.0 Le mot-clé this : Référence à l’objet en cours Utilisable uniquement dans des méthodes non- statiques public void Increment() { this._theValue++; }

C# 2.0 et l’orientation objet Notions fondamentales de la Programmation Orientée Objet en C#2.0 Les classes imbriquées : Permet de définir une classe à l’intérieur d’une classe Seules classes pouvant avoir les modificateurs protected ou private public class MyDataSet { protected class MyDataTable {... }

Définition de systèmes orientés objet Notions fondamentales de la Programmation Orientée Objet en C#2.0 Définition de systèmes orientés objet – Réalisation d’une représentation orientée objet d’un élément ou d’un système.

Définition de systèmes orientés objet Notions fondamentales de la Programmation Orientée Objet en C#2.0 Exemple de système orienté objet : public class Car { private Wheel[] _wheels; private Light[] _lights; private Door[] _doors; public void Turn() { } public void Open(Door door) { }

Notions avancées de la Programmation Orientée Objet en C#2.0 La Programmation Orientée Objet en C# 2.0

Plan de la partie Propriétés. Indexeurs. Attributs. Voici les chapitres que nous allons aborder: Notions avancées de la Programmation Orientée Objet en C#2.0

Propriétés Notions avancées de la Programmation Orientée Objet en C#2.0 Nouveautés de C# Utilisé pour : Récupérer la valeur d’un champ (get) Définir la valeur d’un champ

Propriétés Notions avancées de la Programmation Orientée Objet en C#2.0 Exemple de définition : public class MyClass { private int _theValue; public int Value { get { return _theValue; } set { _theValue = value; } Propriété Accesseurs

Propriétés Notions avancées de la Programmation Orientée Objet en C#2.0 Exemple d’utilisation : public static void Main() { MyClass theClass = new MyClass(); int classValue = theClass.Value; theclass.Value = ++classValue; } Accesseur Get. Accesseur Set.

Indexeurs Notions avancées de la Programmation Orientée Objet en C#2.0 Similaire aux propriétés Utilisables comme une collection public class MyClass { private ArrayList _theCollection = new ArrayList(); public MyElement this[int index] { get { return (MyElement) _theCollection[index]; } set { _theCollection[index]= value; } }

Attributs Notions avancées de la Programmation Orientée Objet en C#2.0 Permet de spécifier donner plus de détails sur une méthode, une classe Se déclare en précédant l’élément Peut être utilisé avec des paramètres [Flags] public enum StateFlags { WithWheels = 0x0001, WithEngine = 0x0002, WithLights = 0x0004, WithBreaks = 0x0008 } Indique que l’énumération contient des nombres binaires

Héritage en C# 2.0 La Programmation Orientée Objet en C# 2.0

Plan de la partie Dérivation de classe. Implémentation de méthodes. Implémentation d’interfaces. Utilisation d’interfaces. Utilisation de classes abstraites et scellées. Hiérarchie des objets Voici les chapitres que nous allons aborder: Héritage en C# 2.0

Dérivation de classe Héritage en C# 2.0 Permet d’hériter des données et fonctionnalités d’une classe mère Mot-clés protected et internal pour restreindre l’accès Appel possible au constructeur de la classe mère

Dérivation de classe Héritage en C# 2.0 Exemple de dérivation : public class MyClass {... } public class MyDerivedClass : MyClass {... } Classe mère Classe fille

Dérivation de classe Héritage en C# 2.0 Exemple d’appel au constructeur de base : public class MyDerivedClass : MyClass { public MyDerivedClass() : base() {... } Appel au constructeur de la classe mère

Implémentation de méthodes Héritage en C# 2.0 Virtual et Override Uniquement pour des méthodes Méthodes non-statiques Méthodes non-privées New Redéfinir une méthode non-virtuelle Peut être utilisé avec les méthodes virtuelles

Implémentation de méthodes Héritage en C# 2.0 Exemple d’utilisation de virtual et override : class MyClass { protected int _myField; public virtual void Increment() { _myField++; } } class MyDerivedClass : MyClass { public override void Increment() { _myField += 2; } }

Implémentation d’interfaces Héritage en C# 2.0 Interface – Contrat qu’une classe l’implémentant se doit de respecter.

Implémentation d’interfaces Héritage en C# 2.0 Plusieurs interfaces implémentables pour une même classe Une classe implémentant une interface doit implémenter toutes les méthodes de l’interface public class Light : ISwitchable { public void Switch() { }

Utilisation d’interfaces Héritage en C# 2.0 Mot-clé Interface Méthodes déclarées : Ne contiennent pas de code Ne comporte pas de modificateur d’accès Peut être utilisé comme type de donnée public interface ISwitchable { void Switch(); }

Utilisation de classes abstraites et scellées Héritage en C# 2.0 Faites pour être dérivées Ne peuvent être instanciées Classes abstraites public abstract class Vehicule { public void Stop() {... } }

Utilisation de classes abstraites et scellées Héritage en C# 2.0 Ne peuvent être dérivées Classes scellées public sealed class Vehicule { public void Stop() {... } }

Hiérarchie des objets Héritage en C# 2.0 Toute classe dérive directement ou indirectement de System.object Quelques méthodes : ToString() Equals() GetType() Finalize()

Hiérarchie des objets Héritage en C# 2.0 Quelques opérateurs de POO : TypeOf Récupérer le System.Type de l’objet Is Vérifier la compatibilité d’un objet avec un type As Vérifie la compatibilité d’un objet puis le transforme dans le type donnée

Surcharge d’opérateurs, délégués et événements La Programmation Orientée Objet en C# 2.0

Plan de la partie Surcharge d’opérateurs. Délégation. Evènements. Voici les chapitres que nous allons aborder: Surcharge d’opérateurs, délégués et événements

Surcharge d’opérateurs Surcharge d’opérateurs, délégués et événements Contrôler le comportement d’un objet face à un opérateur Méthode statique Mot-clé operator Opérandes passés en argument Opérateurs surchargeables : Arithmétiques ("+", "-", “&", "++", etc.) De conversion de type De comparaison

Surcharge d’opérateurs Surcharge d’opérateurs, délégués et événements public static Complex operator ++ (Complex c) { return new Complex(++c.Real, ++c.Imaginary); } Exemple de surcharge : Type de retourOpérateur

Délégation Surcharge d’opérateurs, délégués et événements Utilisé pour déléguer l’exécution d’un morceau de programme Peut référencer plusieurs méthodes déléguées Déclaration d’un type delegate Mot-clé delegate Déclaration des arguments de la méthode déléguée Exemple de déclaration d’un délégué : public delegate int MyDelegateType(int i);

Délégation Surcharge d’opérateurs, délégués et événements public static int Increment(int value); { return ++value; } static void Main(string[] args) { MyDelegateType myDelegate = new MyDelegateType(Increment); myDelegate(10); } Exemple d’utilisation d’un délégué : Méthode déléguée Instanciation Appel

Délégation Surcharge d’opérateurs, délégués et événements public static int Increment(int value); { return ++value; } public static void Show(int value); { Console.WriteLine("Valeur : {0}", value.ToString()); } static void Main(string[] args) { MyDelegateType myDelegate = new MyDelegateType(Increment); myDelegate += new MyDelegateType( Show ); myDelegate(10); } Exemple de référencement de plusieurs méthodes :

Evènements Surcharge d’opérateurs, délégués et événements Permettent de capturer une action du programme Méthode standard pour la gestion d’évènements Basé sur la délégation Mot-clé event Signature fixe : void OnEventName(object sender, EventArgs);

Evènements Surcharge d’opérateurs, délégués et événements public delegate void NewInfoHandler(object sender, EventArgs e); Déclaration du délégué : public event NewInfoHandler InfoHandler; Déclaration de l’évènement : InfoHandler += new NewInfoHandler(); Abonnement :

L’héritage Surcharger un opérateur La Programmation Orientée Objet Utiliser délégués et évènements Résumé du module L’implémentation objet de C#2.0 La Programmation Orientée Objet en C# 2.0

Félicitations Vous avez suivi avec succès le module de cours La Programmation Orientée Objet en C# 2.0

Fin La Programmation Orientée Objet en C# 2.0