Vous êtes sur la page 1sur 15

Programmation C#

Dclaration dune classe


Implicitement toutes les classes
Espace de noms Gnralement associ au sont hritires de Object
projet, mais pas seulement.
Peut contenir plusieurs classes.

Qualificateur de la classe :
public visible par nimporte quel programme
dun autres espace de noms
protected , pour les classes imbriques, sera Champs
visible uniquement par la classe conteneur et
ses hritiers
internal visible par les autres classes du mme
assembly (lEXE ou la DLL du projet)
private visible uniquement par les classes du
mme espace de noms

Mthode : Un constructeur par dfaut (sans


paramtres) est toujours propos
Instanciation
On est dans le mme espace de noms

Dclaration de la variable +
initialisation

Hum ! Danger
Constructeur
Mthode appele automatiquement lors de linstanciation

Mme nom que la classe.


Forcment public
Peuvent tre plusieurs
Se diffrencient par les paramtres
On peut rutiliser un des
constructeurs dans un autre
constructeur

Rutilisation dun autre


constructeur
Destructeur
Mthode appele automatiquement lors de la destruction

Un seul destructeur par classe


Pas de paramtres
Jamais dappel explicite

Rarement ncessaire sauf ncessits


particulires. Ex. pour fermer les fichiers
temporaires, fermer une connexion, etc.
Destructeur
Fonctionnement

Le destructeur est appel


quand .NET le dcide, et pas
avant
Encapsulation
Dfinir une porte pour les champs et les mthodes private
protected
public

Les champs devraient


toujours tre private (au pire
protected)

Accesseurs
Encapsulation Aller plus loin avec les proprits

value est un mot cl

Pour un champ atomique

Pour un champ vecteur : indexeur


Encapsulation Aller plus loin avec les proprits (2)

Accs aux champs simplifi


Hritage
Dfinir une hirarchie de classes Maximiser la rutilisation du code new pour dire quon redfinit la mthode

base pour faire appel la mthode de lanctre


Hritage
Instanciation
Polymorphisme
Le type dclar (anctre) est diffrent du type rellement instanci (initialis)

Mthode virtuelle, prend en


charge le polymorphisme

Surcharge tenant compte


du polymorphisme
Type dclar : Voiture

Type instanci : VoitureLocation

Saisie de VoitureLocation car


Saisie est virtuelle

Taxe de Voiture
Si Taxe est redfinie chez
VoitureLocation, elle est ignore
PrixLocation de VoitureLocation
Cast explicite parce que la mthode nexiste pas
chez Voiture
Classe abstraite
Classe dont certaines mthodes ne sont pas programmes

Une mthode est abstraite

Donc, la classe est abstraite

On ne peut pas crer une instance de


cette classe !!!

Appel de la mthode
abstraite dans une autre
mthode de la classe
abstraite

On peut quand mme profiter des mthodes dj


programmes chez lanctre
Liste polymorphe
Liste dobjets diffrents mais forcment hritiers du mme anctre

Pour accder la classe List

Notez au passage que List est une classe


gnrique c.--d. paramtre