30
Formation C# Pierre de La Morinerie Club Microsoft Isep — 2007 Cours n° 3 : Programmation objet

Formation C# - Cours 3 - Programmation objet

Embed Size (px)

DESCRIPTION

Troisième partie de la formation C# du Club Microsoft Isep. Fondements de la Porgramation Orientée Objet, introduction aux classes, méthodes et attributs par l'exemple.

Citation preview

Page 1: Formation C# - Cours 3 - Programmation objet

Formation C#

Pierre de La MorinerieClub Microsoft Isep — 2007

Cours n° 3 : Programmation objet

Page 2: Formation C# - Cours 3 - Programmation objet

Plan

•Introduction, premiers pas, concepts

•Programmation procédurale

•Programmation objet

•Programmation Windows

Page 3: Formation C# - Cours 3 - Programmation objet

Cours n° 3Programmation

objet

Page 4: Formation C# - Cours 3 - Programmation objet

Programmation objet

•Programmation objet :

➡Modélise le programme par des objets

•Avantages :

➡Encapsulation

➡Réutilisation facile

➡Débogage facilité

Page 5: Formation C# - Cours 3 - Programmation objet

Programmation objet

•Les classes :

➡Servent à définir des types d’objets

•Les classes comportent :

➡Des attributs (variables)

➡Des méthodes (fonctions)

Page 6: Formation C# - Cours 3 - Programmation objet

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

Page 7: Formation C# - Cours 3 - Programmation objet

Programmation objet

•Déclaration d’une classe :

➡ class <nom de la classe> {}

•Exemple :

➡ class Voiture {}

Page 8: Formation C# - Cours 3 - Programmation objet

Programmation objet

•Ajouter des fonctions à notre classe :

➡<accès> <type> <nom>(<arguments>) { }

•Exemple :

➡ public int MaMéthode(string a) { // code return 0;}

Page 9: Formation C# - Cours 3 - Programmation objet

Programmation objet

•Modificateurs d’accès :

➡public : visible depuis l’extérieur et l’intérieur

➡private : visible uniquement de l’intérieur

Page 10: Formation C# - Cours 3 - Programmation objet

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

Page 11: Formation C# - Cours 3 - Programmation objet

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

Page 12: Formation C# - Cours 3 - Programmation objet

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

Page 13: Formation C# - Cours 3 - Programmation objet

Attributs

•Problème :

➡Comment accéder à la même variable depuis plusieurs méthodes ?

•Solution :

➡Les attributs

Page 14: Formation C# - Cours 3 - Programmation objet

Attributs

•Déclaration d’un attribut :

➡ <accès> <type> <nom>;

•Exemple :

➡ public int precision;

Page 15: Formation C# - Cours 3 - Programmation objet

Attributs

•Exemple 2 : Calculette

➡Un attribut précision détermine la précision de tous les calculs

Page 16: Formation C# - Cours 3 - Programmation objet

Constructeur

•Problème :

➡Comment initialiser les attributs d’un objet ?

•Solution : Les constructeurs

➡Méthode appelée à la création de chaque objet

Page 17: Formation C# - Cours 3 - Programmation objet

Constructeur

•Déclaration d’un constructeur :

➡public <nom de la classe>(<arguments>) {}

•Exemple :

➡cf. Ex3.cs

Page 18: Formation C# - Cours 3 - Programmation objet

Constructeur

•Avantages :

➡Obligation d’initialiser le ou les attributs

➡Permet d’initialiser l’état de l’objet

Page 19: Formation C# - Cours 3 - Programmation 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

Page 20: Formation C# - Cours 3 - Programmation objet

Accesseurs

➡Exemple d’accesseur :

•public int precision { get { return precision; } set { precision = value; }}

➡Cf. Ex4.cs

Page 21: Formation C# - Cours 3 - Programmation objet

Accesseurs

•Avantages :

➡Pas besoin de méthodes supplémentaires

➡Contrôle lecture/écriture

➡Contrôle d’erreur sur la valeur des attributs

Page 22: Formation C# - Cours 3 - Programmation objet

Exceptions

•Problème :

➡Comment signaler les erreurs ?

•Solution :

➡Passer par un canal spécial : les exceptions

Page 23: Formation C# - Cours 3 - Programmation objet

Exceptions

•Exception : un objet qui est “jeté”

•Remonte les blocs de code jusqu’à être “attrapé”

Page 24: Formation C# - Cours 3 - Programmation objet

Exceptions

•Jeter une exception :

➡ throw new Exception();

•Attraper une exception :

➡ try { // code} catch (Exception e) { Console.WriteLine(“Erreur”);}

Page 25: Formation C# - Cours 3 - Programmation objet

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) { }

Page 26: Formation C# - Cours 3 - Programmation objet

XMLDoc

•Problème :

➡Comment documenter son programme ?

•Solution :

➡Documenter directement le code

Page 27: Formation C# - Cours 3 - Programmation objet

XMLDoc

•Principe de XMLDoc :

➡Documenter dans le code

➡Classes, fonctions, attributs, etc.

➡Utiliser NDoc

•Syntaxe :

➡ /// <summary>Résumé</summary>

Page 28: Formation C# - Cours 3 - Programmation objet

XMLDoc

•Exemple 5 : Documentation

➡Documenter toute la Calculette

Page 29: Formation C# - Cours 3 - Programmation objet

Garbage Collector

•Libère automatiquement les objets en mémoire

•Pas besoin de “free” comme en C/C++

Page 30: Formation C# - Cours 3 - Programmation objet

Assemblies

•Assembly : DLL .NET compilée

•Utilisable depuis n’importe quel langage .NET

•GAC : Global Assembly Cache