SlideShare une entreprise Scribd logo
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

Contenu connexe

Tendances

Programmation orientée objet avancée
Programmation orientée objet avancéeProgrammation orientée objet avancée
Programmation orientée objet avancée
Mahfoud EL HOUDAIGUI
 
C# 5 versus Java 8... Quand C++ 11 s'invite à la fête
C# 5 versus Java 8... Quand C++ 11 s'invite à la fêteC# 5 versus Java 8... Quand C++ 11 s'invite à la fête
C# 5 versus Java 8... Quand C++ 11 s'invite à la fête
Fabrice JEAN-FRANCOIS
 
POO
POOPOO
Initiation au code : Ateliers en C# (applications desktop et mobile native)
Initiation au code : Ateliers en C# (applications desktop et mobile native)Initiation au code : Ateliers en C# (applications desktop et mobile native)
Initiation au code : Ateliers en C# (applications desktop et mobile native)
Stéphanie Hertrich
 
Une introduction à Javascript et ECMAScript 6
Une introduction à Javascript et ECMAScript 6Une introduction à Javascript et ECMAScript 6
Une introduction à Javascript et ECMAScript 6
Jean-Baptiste Vigneron
 
Chap 6 : classes et interfaces
Chap 6 : classes et interfacesChap 6 : classes et interfaces
Chap 6 : classes et interfaces
Aziz Darouichi
 
Héritage et polymorphisme- Jihen HEDHLI
Héritage et polymorphisme- Jihen HEDHLIHéritage et polymorphisme- Jihen HEDHLI
Héritage et polymorphisme- Jihen HEDHLI
JihenHedhli1
 
Chapitre5: Classes et objets
Chapitre5: Classes et objetsChapitre5: Classes et objets
Chapitre5: Classes et objets
Aziz Darouichi
 
Chapitre2fonctionscppv2019
Chapitre2fonctionscppv2019Chapitre2fonctionscppv2019
Chapitre2fonctionscppv2019
Aziz Darouichi
 
Chapitre6: Surcharge des opérateurs
Chapitre6:  Surcharge des opérateursChapitre6:  Surcharge des opérateurs
Chapitre6: Surcharge des opérateurs
Aziz Darouichi
 
Fondamentaux java
Fondamentaux javaFondamentaux java
Fondamentaux java
Ines Ouaz
 
C# - Mappages de types de données SQL Server
C# - Mappages de types de données SQL ServerC# - Mappages de types de données SQL Server
C# - Mappages de types de données SQL Server
Mahfoud EL HOUDAIGUI
 
Chap2fonctionscpp
Chap2fonctionscppChap2fonctionscpp
Chap2fonctionscpp
Aziz Darouichi
 
Chapitre 11: Expression Lambda et Référence de méthode en Java
Chapitre 11: Expression Lambda et Référence de méthode en JavaChapitre 11: Expression Lambda et Référence de méthode en Java
Chapitre 11: Expression Lambda et Référence de méthode en Java
Aziz Darouichi
 
TP4 Atelier C++ /GL2 INSAT / Tunisie
TP4 Atelier C++ /GL2 INSAT / TunisieTP4 Atelier C++ /GL2 INSAT / Tunisie
TP4 Atelier C++ /GL2 INSAT / Tunisie
Mariem ZAOUALI
 
Les fondamentaux de langage C#
Les fondamentaux de langage C#Les fondamentaux de langage C#
Les fondamentaux de langage C#
Youness Boukouchi
 
Programmation en C
Programmation en CProgrammation en C
Programmation en C
Youness Boukouchi
 
TP2 Atelier C++/ GL2 INSAT / Tunisie
TP2 Atelier C++/ GL2 INSAT / TunisieTP2 Atelier C++/ GL2 INSAT / Tunisie
TP2 Atelier C++/ GL2 INSAT / Tunisie
Mariem ZAOUALI
 
Chap1: Cours en C++
Chap1: Cours en C++Chap1: Cours en C++
Chap1: Cours en C++
Aziz Darouichi
 

Tendances (20)

Programmation orientée objet avancée
Programmation orientée objet avancéeProgrammation orientée objet avancée
Programmation orientée objet avancée
 
C# 5 versus Java 8... Quand C++ 11 s'invite à la fête
C# 5 versus Java 8... Quand C++ 11 s'invite à la fêteC# 5 versus Java 8... Quand C++ 11 s'invite à la fête
C# 5 versus Java 8... Quand C++ 11 s'invite à la fête
 
POO
POOPOO
POO
 
Initiation au code : Ateliers en C# (applications desktop et mobile native)
Initiation au code : Ateliers en C# (applications desktop et mobile native)Initiation au code : Ateliers en C# (applications desktop et mobile native)
Initiation au code : Ateliers en C# (applications desktop et mobile native)
 
Polymorphisme
PolymorphismePolymorphisme
Polymorphisme
 
Une introduction à Javascript et ECMAScript 6
Une introduction à Javascript et ECMAScript 6Une introduction à Javascript et ECMAScript 6
Une introduction à Javascript et ECMAScript 6
 
Chap 6 : classes et interfaces
Chap 6 : classes et interfacesChap 6 : classes et interfaces
Chap 6 : classes et interfaces
 
Héritage et polymorphisme- Jihen HEDHLI
Héritage et polymorphisme- Jihen HEDHLIHéritage et polymorphisme- Jihen HEDHLI
Héritage et polymorphisme- Jihen HEDHLI
 
Chapitre5: Classes et objets
Chapitre5: Classes et objetsChapitre5: Classes et objets
Chapitre5: Classes et objets
 
Chapitre2fonctionscppv2019
Chapitre2fonctionscppv2019Chapitre2fonctionscppv2019
Chapitre2fonctionscppv2019
 
Chapitre6: Surcharge des opérateurs
Chapitre6:  Surcharge des opérateursChapitre6:  Surcharge des opérateurs
Chapitre6: Surcharge des opérateurs
 
Fondamentaux java
Fondamentaux javaFondamentaux java
Fondamentaux java
 
C# - Mappages de types de données SQL Server
C# - Mappages de types de données SQL ServerC# - Mappages de types de données SQL Server
C# - Mappages de types de données SQL Server
 
Chap2fonctionscpp
Chap2fonctionscppChap2fonctionscpp
Chap2fonctionscpp
 
Chapitre 11: Expression Lambda et Référence de méthode en Java
Chapitre 11: Expression Lambda et Référence de méthode en JavaChapitre 11: Expression Lambda et Référence de méthode en Java
Chapitre 11: Expression Lambda et Référence de méthode en Java
 
TP4 Atelier C++ /GL2 INSAT / Tunisie
TP4 Atelier C++ /GL2 INSAT / TunisieTP4 Atelier C++ /GL2 INSAT / Tunisie
TP4 Atelier C++ /GL2 INSAT / Tunisie
 
Les fondamentaux de langage C#
Les fondamentaux de langage C#Les fondamentaux de langage C#
Les fondamentaux de langage C#
 
Programmation en C
Programmation en CProgrammation en C
Programmation en C
 
TP2 Atelier C++/ GL2 INSAT / Tunisie
TP2 Atelier C++/ GL2 INSAT / TunisieTP2 Atelier C++/ GL2 INSAT / Tunisie
TP2 Atelier C++/ GL2 INSAT / Tunisie
 
Chap1: Cours en C++
Chap1: Cours en C++Chap1: Cours en C++
Chap1: Cours en C++
 

En vedette

Formation C# - Cours 1 - Introduction, premiers pas, concepts
Formation C# - Cours 1 - Introduction, premiers pas, conceptsFormation C# - Cours 1 - Introduction, premiers pas, concepts
Formation C# - Cours 1 - Introduction, premiers pas, concepts
kemenaran
 
Support programmation orientée objet c# .net version f8
Support programmation orientée objet c#  .net version f8Support programmation orientée objet c#  .net version f8
Support programmation orientée objet c# .net version f8
ENSET, Université Hassan II Casablanca
 
Android Appliation development bangalore
Android Appliation development bangaloreAndroid Appliation development bangalore
Android Appliation development bangalore
IndGlobal Digital Private Limited
 
Gestion Administrative De L Entreprise
Gestion Administrative De L EntrepriseGestion Administrative De L Entreprise
Gestion Administrative De L Entreprise
jpmornard
 
Organisation des entreprises
Organisation des entreprisesOrganisation des entreprises
Organisation des entreprises
salimzer1
 
Cours d'Introduction à Uml
Cours d'Introduction à UmlCours d'Introduction à Uml
Cours d'Introduction à Uml
Christophe Vaudry
 
Introduction à C++
Introduction à C++Introduction à C++
Introduction à C++
Christophe Vaudry
 
Economie organisation de l'entreprise
Economie organisation de l'entreprise Economie organisation de l'entreprise
Economie organisation de l'entreprise
momokaka
 
569036 bases-de-traitement-du-signal
569036 bases-de-traitement-du-signal569036 bases-de-traitement-du-signal
569036 bases-de-traitement-du-signal
Oussema Ben Khlifa
 
chap1 generalites_signaux-systemes
chap1 generalites_signaux-systemeschap1 generalites_signaux-systemes
chap1 generalites_signaux-systemes
BAKKOURY Jamila
 
Serie5
Serie5Serie5
Serie5
hassan1488
 
La gestion des ressources humaines (cours pdf)
La gestion des ressources humaines (cours pdf)La gestion des ressources humaines (cours pdf)
La gestion des ressources humaines (cours pdf)
Jamal Yasser
 
Test Hamnet Ubiquity Bullet 2 & Nanostation 5 - distance 6500m
Test Hamnet Ubiquity Bullet 2 & Nanostation 5 - distance 6500mTest Hamnet Ubiquity Bullet 2 & Nanostation 5 - distance 6500m
Test Hamnet Ubiquity Bullet 2 & Nanostation 5 - distance 6500m
Lionel Repellin
 
Repositorio Digital Agricola
Repositorio Digital AgricolaRepositorio Digital Agricola
Repositorio Digital Agricola
Liz Pagan
 
Développer les PME vertes - Les éco-entreprises de taille intermédiaire, outi...
Développer les PME vertes - Les éco-entreprises de taille intermédiaire, outi...Développer les PME vertes - Les éco-entreprises de taille intermédiaire, outi...
Développer les PME vertes - Les éco-entreprises de taille intermédiaire, outi...
lafabriqueecolo
 

En vedette (19)

Formation C# - Cours 1 - Introduction, premiers pas, concepts
Formation C# - Cours 1 - Introduction, premiers pas, conceptsFormation C# - Cours 1 - Introduction, premiers pas, concepts
Formation C# - Cours 1 - Introduction, premiers pas, concepts
 
Support programmation orientée objet c# .net version f8
Support programmation orientée objet c#  .net version f8Support programmation orientée objet c#  .net version f8
Support programmation orientée objet c# .net version f8
 
Android Appliation development bangalore
Android Appliation development bangaloreAndroid Appliation development bangalore
Android Appliation development bangalore
 
Gestion Administrative De L Entreprise
Gestion Administrative De L EntrepriseGestion Administrative De L Entreprise
Gestion Administrative De L Entreprise
 
Organisation des entreprises
Organisation des entreprisesOrganisation des entreprises
Organisation des entreprises
 
Cours d'Introduction à Uml
Cours d'Introduction à UmlCours d'Introduction à Uml
Cours d'Introduction à Uml
 
Introduction à C++
Introduction à C++Introduction à C++
Introduction à C++
 
Cours1
Cours1Cours1
Cours1
 
Economie organisation de l'entreprise
Economie organisation de l'entreprise Economie organisation de l'entreprise
Economie organisation de l'entreprise
 
569036 bases-de-traitement-du-signal
569036 bases-de-traitement-du-signal569036 bases-de-traitement-du-signal
569036 bases-de-traitement-du-signal
 
Info reseaux
Info reseaux Info reseaux
Info reseaux
 
chap1 generalites_signaux-systemes
chap1 generalites_signaux-systemeschap1 generalites_signaux-systemes
chap1 generalites_signaux-systemes
 
Serie5
Serie5Serie5
Serie5
 
La gestion des ressources humaines (cours pdf)
La gestion des ressources humaines (cours pdf)La gestion des ressources humaines (cours pdf)
La gestion des ressources humaines (cours pdf)
 
C sharp
C sharpC sharp
C sharp
 
Plaquette stratégie HORIZON 2020
Plaquette stratégie HORIZON 2020Plaquette stratégie HORIZON 2020
Plaquette stratégie HORIZON 2020
 
Test Hamnet Ubiquity Bullet 2 & Nanostation 5 - distance 6500m
Test Hamnet Ubiquity Bullet 2 & Nanostation 5 - distance 6500mTest Hamnet Ubiquity Bullet 2 & Nanostation 5 - distance 6500m
Test Hamnet Ubiquity Bullet 2 & Nanostation 5 - distance 6500m
 
Repositorio Digital Agricola
Repositorio Digital AgricolaRepositorio Digital Agricola
Repositorio Digital Agricola
 
Développer les PME vertes - Les éco-entreprises de taille intermédiaire, outi...
Développer les PME vertes - Les éco-entreprises de taille intermédiaire, outi...Développer les PME vertes - Les éco-entreprises de taille intermédiaire, outi...
Développer les PME vertes - Les éco-entreprises de taille intermédiaire, outi...
 

Similaire à Formation C# - Cours 3 - Programmation objet

Visual Studio 2008 Overview
Visual Studio 2008 OverviewVisual Studio 2008 Overview
Visual Studio 2008 Overview
Gregory Renard
 
De Java à .NET
De Java à .NETDe Java à .NET
De Java à .NET
Michel Salib
 
Correction TP4 Atelier C++ /GL2 INSAT / Tunisie
Correction TP4 Atelier C++ /GL2 INSAT / TunisieCorrection TP4 Atelier C++ /GL2 INSAT / Tunisie
Correction TP4 Atelier C++ /GL2 INSAT / Tunisie
Mariem ZAOUALI
 
POO-chapitre3.pptx
POO-chapitre3.pptxPOO-chapitre3.pptx
POO-chapitre3.pptx
ImaneLoukili7
 
programmation orienté objet c++
programmation orienté objet c++programmation orienté objet c++
programmation orienté objet c++
coursuniv
 
Cours de C++, en français, 2002 - Cours 2.1
Cours de C++, en français, 2002 - Cours 2.1Cours de C++, en français, 2002 - Cours 2.1
Cours de C++, en français, 2002 - Cours 2.1
Laurent BUNIET
 
Deuxième partie.pptx
Deuxième partie.pptxDeuxième partie.pptx
Deuxième partie.pptx
SafaeLhr1
 
Découvrez C# 4.0 et les améliorations apportées à la BCL
Découvrez C# 4.0 et les améliorations apportées à la BCLDécouvrez C# 4.0 et les améliorations apportées à la BCL
Découvrez C# 4.0 et les améliorations apportées à la BCL
DotNetHub
 
Cpp2 : classes et objets
Cpp2 : classes et objetsCpp2 : classes et objets
Cpp2 : classes et objets
Abdoulaye Dieng
 
Qualité logicielle
Qualité logicielleQualité logicielle
Qualité logicielle
cyrilgandon
 
Dotnet csharp
Dotnet csharpDotnet csharp
Dotnet csharp
SDFG5
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008
Khalil Lechheb
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008
Khalil Lechheb
 
Pensez objets avec java
Pensez objets avec javaPensez objets avec java
Pensez objets avec java
Asmaa BENGUEDDACH
 
Alphorm.com Formation TypeScript
Alphorm.com Formation TypeScriptAlphorm.com Formation TypeScript
Alphorm.com Formation TypeScript
Alphorm
 
Alphorm.com Formation PowerShell : Niveau Perfectionnement
Alphorm.com Formation PowerShell : Niveau PerfectionnementAlphorm.com Formation PowerShell : Niveau Perfectionnement
Alphorm.com Formation PowerShell : Niveau Perfectionnement
Alphorm
 
Développement de plug in sous eclipse
Développement de plug in sous eclipseDéveloppement de plug in sous eclipse
Développement de plug in sous eclipse
ISIG
 
JAVA-UIK-CHAP6-POO HERITAGE JAVA
JAVA-UIK-CHAP6-POO HERITAGE JAVAJAVA-UIK-CHAP6-POO HERITAGE JAVA
JAVA-UIK-CHAP6-POO HERITAGE JAVA
Aymen Bedwivski
 

Similaire à Formation C# - Cours 3 - Programmation objet (20)

Visual Studio 2008 Overview
Visual Studio 2008 OverviewVisual Studio 2008 Overview
Visual Studio 2008 Overview
 
De Java à .NET
De Java à .NETDe Java à .NET
De Java à .NET
 
Correction TP4 Atelier C++ /GL2 INSAT / Tunisie
Correction TP4 Atelier C++ /GL2 INSAT / TunisieCorrection TP4 Atelier C++ /GL2 INSAT / Tunisie
Correction TP4 Atelier C++ /GL2 INSAT / Tunisie
 
POO-chapitre3.pptx
POO-chapitre3.pptxPOO-chapitre3.pptx
POO-chapitre3.pptx
 
programmation orienté objet c++
programmation orienté objet c++programmation orienté objet c++
programmation orienté objet c++
 
Cours de C++, en français, 2002 - Cours 2.1
Cours de C++, en français, 2002 - Cours 2.1Cours de C++, en français, 2002 - Cours 2.1
Cours de C++, en français, 2002 - Cours 2.1
 
Deuxième partie.pptx
Deuxième partie.pptxDeuxième partie.pptx
Deuxième partie.pptx
 
Découvrez C# 4.0 et les améliorations apportées à la BCL
Découvrez C# 4.0 et les améliorations apportées à la BCLDécouvrez C# 4.0 et les améliorations apportées à la BCL
Découvrez C# 4.0 et les améliorations apportées à la BCL
 
Cpp2 : classes et objets
Cpp2 : classes et objetsCpp2 : classes et objets
Cpp2 : classes et objets
 
Vs2008 Linq
Vs2008 LinqVs2008 Linq
Vs2008 Linq
 
Linq Tech Days08 Lux
Linq Tech Days08 LuxLinq Tech Days08 Lux
Linq Tech Days08 Lux
 
Qualité logicielle
Qualité logicielleQualité logicielle
Qualité logicielle
 
Dotnet csharp
Dotnet csharpDotnet csharp
Dotnet csharp
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008
 
Pensez objets avec java
Pensez objets avec javaPensez objets avec java
Pensez objets avec java
 
Alphorm.com Formation TypeScript
Alphorm.com Formation TypeScriptAlphorm.com Formation TypeScript
Alphorm.com Formation TypeScript
 
Alphorm.com Formation PowerShell : Niveau Perfectionnement
Alphorm.com Formation PowerShell : Niveau PerfectionnementAlphorm.com Formation PowerShell : Niveau Perfectionnement
Alphorm.com Formation PowerShell : Niveau Perfectionnement
 
Développement de plug in sous eclipse
Développement de plug in sous eclipseDéveloppement de plug in sous eclipse
Développement de plug in sous eclipse
 
JAVA-UIK-CHAP6-POO HERITAGE JAVA
JAVA-UIK-CHAP6-POO HERITAGE JAVAJAVA-UIK-CHAP6-POO HERITAGE JAVA
JAVA-UIK-CHAP6-POO HERITAGE JAVA
 

Formation C# - Cours 3 - Programmation objet

  • 1. Formation C# Pierre de La Morinerie Club Microsoft Isep — 2007 Cours n° 3 : Programmation objet
  • 2. Plan Introduction, premiers pas, concepts Programmation procédurale Programmation objet Programmation Windows
  • 3. Cours n° 3 Programmation objet Programmation objet
  • 4. Programmation objet Programmation objet : Modélise le programme par des objets Avantages : Encapsulation Réutilisation facile Débogage facilité
  • 5. Programmation objet Les classes : Servent à définir des types d’objets Les classes comportent : Des attributs (variables) Des méthodes (fonctions)
  • 6. 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
  • 7. Programmation objet Déclaration d’une classe : class <nom de la classe> { } Exemple : class Voiture { }
  • 8. Programmation objet Ajouter des fonctions à notre classe : <accès> <type> <nom>(<arguments>) { } Exemple : public int MaMéthode(string a) { // code return 0; }
  • 9. Programmation objet Modificateurs d’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’un attribut : <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’une proprié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’un constructeur : 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 une exception : 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 de XMLDoc : 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ère automatiquement 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