Formation C# Pierre de La Morinerie Club Microsoft Isep — 2007 Cours n° 3 : Programmation objet
Plan Introduction, premiers pas, concepts Programmation procédurale Programmation objet Programmation Windows
Cours n° 3 Programmation objet Programmation objet
Programmation objet Programmation objet : Modélise le programme par des objets Avantages : Encapsulation Réutilisation facile Débogage facilité
Programmation objet Les classes : Servent à définir des types d’objets Les classes comportent : Des attributs (variables) Des méthodes (fonctions)
Programmation objet Différence classe/objet : Une classe est un  type  (un moule) Un objet est une  variable  (un gâteau) Exemple : Une classe  Voiture Deux objets,  voiturePapa  et  maVoiture
Programmation objet Déclaration d’une classe : class <nom de la classe> { } Exemple : class Voiture { }
Programmation objet Ajouter des fonctions à notre classe : <accès> <type> <nom>(<arguments>) { } Exemple : public int MaMéthode(string a) {   // code   return 0; }
Programmation objet Modificateurs d’accès : public  : visible depuis l’extérieur et l’intérieur private  : visible uniquement de l’intérieur
Programmation objet Exemple : calculatrice Code de l’interface dans la classe Main Calculs dans une classe Calc Pour l’instant : Programmer un calcul de puissance
Programmation objet Démo : débogage en temps réel Placer un ou plusieurs “Breakpoint” Lancer le débogage Le programme se met en pause aux Breakpoints
Programmation objet Namespace : “Espace de noms” Différencie des classes de même nom Directive “using <namespace>” : Evite d’avoir à taper le namespace à chaque fois
Attributs Problème : Comment accéder à la même variable depuis plusieurs méthodes ? Solution : Les attributs
Attributs Déclaration d’un attribut : <accès> <type> <nom>; Exemple : public int precision;
Attributs Exemple 2 : Calculette Un attribut précision détermine la précision de tous les calculs
Propriétés Problème : Comment contrôler l’accès à des attributs ? Solution : Les propriétés
Propriétés Déclaration d’une propriété <accès> <type> <nom> {   get {   // code   }   set {   // code   } }
Constructeur Problème : Comment initialiser les attributs d’un objet ? Solution : Les  constructeurs Méthode appelée à la création de chaque objet
Constructeur Déclaration d’un constructeur : public <nom de la classe>(<arguments>) { } Exemple : cf. Ex3.cs
Constructeur Avantages : Obligation d’initialiser le ou les attributs Permet d’initialiser l’état de l’objet
Accesseurs Problème : Comment faire pour restreindre l’accès à un attribut ? Solution : le mettre en  private Mais si on veut pouvoir  lire  la précision ? Solution : un accesseur en lecture-seule
Accesseurs Exemple d’accesseur : public int precision {   get { return precision; }   set { precision = value; } } Cf. Ex4.cs
Accesseurs Avantages : Pas besoin de méthodes supplémentaires Contrôle lecture/écriture Contrôle d’erreur sur la valeur des attributs
Exceptions Problème : Comment signaler les erreurs ? Solution : Passer par un canal spécial : les exceptions
Exceptions Exception : un objet qui est “jeté” Remonte les blocs de code jusqu’à être “attrapé”
Exceptions Jeter une exception : throw new Exception(); Attraper une exception : try {   // code } catch (Exception e) {   Console.WriteLine(“Erreur”); }
Exceptions TP 5 : Exceptions Objectif : éviter les divisions par zéro Calc.Div  jette une Exception si b == 0 Afficher un message en cas d’erreur Outils throw new Exception() try { } catch (Exception e) { }
XMLDoc Problème : Comment documenter son programme ? Solution : Documenter directement le code
XMLDoc Principe de XMLDoc : Documenter dans le code Classes, fonctions, attributs, etc. Utiliser NDoc Syntaxe : /// <summary>Résumé</summary>
XMLDoc Exemple 5 : Documentation Documenter toute la Calculette
Garbage Collector Libère automatiquement les objets en mémoire Pas besoin de “free” comme en C/C++
Assemblies Assembly :  DLL .NET compilée Utilisable depuis n’importe quel langage .NET GAC : Global Assembly Cache

Formation C# - Cours 3 - Programmation objet

  • 1.
    Formation C# Pierrede La Morinerie Club Microsoft Isep — 2007 Cours n° 3 : Programmation objet
  • 2.
    Plan Introduction, premierspas, concepts Programmation procédurale Programmation objet Programmation Windows
  • 3.
    Cours n° 3Programmation objet Programmation objet
  • 4.
    Programmation objet Programmationobjet : Modélise le programme par des objets Avantages : Encapsulation Réutilisation facile Débogage facilité
  • 5.
    Programmation objet Lesclasses : Servent à définir des types d’objets Les classes comportent : Des attributs (variables) Des méthodes (fonctions)
  • 6.
    Programmation objet Différenceclasse/objet : Une classe est un type (un moule) Un objet est une variable (un gâteau) Exemple : Une classe Voiture Deux objets, voiturePapa et maVoiture
  • 7.
    Programmation objet Déclarationd’une classe : class <nom de la classe> { } Exemple : class Voiture { }
  • 8.
    Programmation objet Ajouterdes fonctions à notre classe : <accès> <type> <nom>(<arguments>) { } Exemple : public int MaMéthode(string a) { // code return 0; }
  • 9.
    Programmation objet Modificateursd’accès : public : visible depuis l’extérieur et l’intérieur private : visible uniquement de l’intérieur
  • 10.
    Programmation objet Exemple: calculatrice Code de l’interface dans la classe Main Calculs dans une classe Calc Pour l’instant : Programmer un calcul de puissance
  • 11.
    Programmation objet Démo: débogage en temps réel Placer un ou plusieurs “Breakpoint” Lancer le débogage Le programme se met en pause aux Breakpoints
  • 12.
    Programmation objet Namespace: “Espace de noms” Différencie des classes de même nom Directive “using <namespace>” : Evite d’avoir à taper le namespace à chaque fois
  • 13.
    Attributs Problème :Comment accéder à la même variable depuis plusieurs méthodes ? Solution : Les attributs
  • 14.
    Attributs Déclaration d’unattribut : <accès> <type> <nom>; Exemple : public int precision;
  • 15.
    Attributs Exemple 2: Calculette Un attribut précision détermine la précision de tous les calculs
  • 16.
    Propriétés Problème :Comment contrôler l’accès à des attributs ? Solution : Les propriétés
  • 17.
    Propriétés Déclaration d’unepropriété <accès> <type> <nom> { get { // code } set { // code } }
  • 18.
    Constructeur Problème :Comment initialiser les attributs d’un objet ? Solution : Les constructeurs Méthode appelée à la création de chaque objet
  • 19.
    Constructeur Déclaration d’unconstructeur : public <nom de la classe>(<arguments>) { } Exemple : cf. Ex3.cs
  • 20.
    Constructeur Avantages :Obligation d’initialiser le ou les attributs Permet d’initialiser l’état de l’objet
  • 21.
    Accesseurs Problème :Comment faire pour restreindre l’accès à un attribut ? Solution : le mettre en private Mais si on veut pouvoir lire la précision ? Solution : un accesseur en lecture-seule
  • 22.
    Accesseurs Exemple d’accesseur: public int precision { get { return precision; } set { precision = value; } } Cf. Ex4.cs
  • 23.
    Accesseurs Avantages :Pas besoin de méthodes supplémentaires Contrôle lecture/écriture Contrôle d’erreur sur la valeur des attributs
  • 24.
    Exceptions Problème :Comment signaler les erreurs ? Solution : Passer par un canal spécial : les exceptions
  • 25.
    Exceptions Exception :un objet qui est “jeté” Remonte les blocs de code jusqu’à être “attrapé”
  • 26.
    Exceptions Jeter uneexception : throw new Exception(); Attraper une exception : try { // code } catch (Exception e) { Console.WriteLine(“Erreur”); }
  • 27.
    Exceptions TP 5: Exceptions Objectif : éviter les divisions par zéro Calc.Div jette une Exception si b == 0 Afficher un message en cas d’erreur Outils throw new Exception() try { } catch (Exception e) { }
  • 28.
    XMLDoc Problème :Comment documenter son programme ? Solution : Documenter directement le code
  • 29.
    XMLDoc Principe deXMLDoc : Documenter dans le code Classes, fonctions, attributs, etc. Utiliser NDoc Syntaxe : /// <summary>Résumé</summary>
  • 30.
    XMLDoc Exemple 5: Documentation Documenter toute la Calculette
  • 31.
    Garbage Collector Libèreautomatiquement les objets en mémoire Pas besoin de “free” comme en C/C++
  • 32.
    Assemblies Assembly : DLL .NET compilée Utilisable depuis n’importe quel langage .NET GAC : Global Assembly Cache