Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Sommaire
1. Introduction...........................................................................................................................3
2. Classe......................................................................................................................................3
2.1. Notions abordées dans ce chapitre...........................................................................................3
2.2. Notion de classe..........................................................................................................................3
2.3. Encapsulation.............................................................................................................................4
2.4. Déclaration des propriétés d'un objet......................................................................................5
2.5. Implémentation des méthodes..................................................................................................6
2.5.1. Méthode en tant que fonction.................................................................................................................6
2.5.2. Méthode en tant que sous-programme...................................................................................................6
2.6. Instanciation ..............................................................................................................................7
2.7. Accès aux propriétés et aux méthodes......................................................................................7
2.8. Conventions d'écriture..............................................................................................................8
3. Protection et accès aux données membres............................................................................9
3.1. Notions abordées dans ce chapitre...........................................................................................9
3.2. Protection des propriétés...........................................................................................................9
3.3. Fonctions d'accès aux propriétés............................................................................................10
3.3.1. Accès pour lecture................................................................................................................................10
3.3.2. Accès pour modification.......................................................................................................................10
3.4. Accès aux attributs membres par les Property de classe .....................................................11
4. Construction et destruction des objets................................................................................11
4.1. Notions abordées dans ce chapitre..........................................................................................11
4.2. Constructeurs...........................................................................................................................11
4.3. Surcharge des constructeurs...................................................................................................12
4.3.1. Constructeur d'initialisation..................................................................................................................13
4.3.2. Constructeur par défaut........................................................................................................................13
4.3.3. Constructeur de recopie........................................................................................................................14
4.4. Propriétés de classe..................................................................................................................14
4.5. Méthodes de classe...................................................................................................................15
4.6. Destructeur...............................................................................................................................16
5. L'Héritage............................................................................................................................16
5.1. Notions abordées dans ce chapitre..........................................................................................16
5.2. L'héritage.................................................................................................................................17
5.3. Protection des propriétés et des méthodes.............................................................................18
5.4. Mode de représentation...........................................................................................................18
5.5. Insertion d'une classe dans une hiérarchie............................................................................19
5.6. Insertion d'une nouvelle classe à partir de Object................................................................19
5.6.1. Méthode Finalize..................................................................................................................................20
5.6.2. Méthode ToString.................................................................................................................................20
1.Introduction
Ce support propose de construire pas à pas une classe d’objet et de
s’approprier les concepts relatifs à la POO (Programmation Orientée
Objet).
Il s’agit ici d’une initiation à ces techniques, dont l’un des objectifs est de
vous permettre d’être en mesure, par la suite, de manipuler
correctement les différents composants livrés dans le frameWork DotNet
et de poursuivre ainsi votre apprentissage du développement sur cette
plateforme.
L’objectif n’est pas ,au travers de la réalisation des ces exercices, de
maîtriser la conception et la réalisation d’architectures complexes de
composants logiciels reposant sur les techniques de COO et POO. Ces
techniques seront abordées ultérieurement dans la formation.
Le langage retenu pour illustrer cette technique est VB.Net mais nous
aurions pu tout aussi bien choisir un autre langage de la plateforme Dot
Net tel que C#.
2.Classe
2.1. Notions abordées dans ce chapitre
Notion de classe d'objet
Définition d'une nouvelle classe d'objet en VB.Net
Encapsulation des propriétés et des méthodes de cet objet.
Instanciation de l'objet.
2.3. Encapsulation
L'encapsulation est un concept important de la Programmation Orientée
Objet.
L'encapsulation permet de rassembler les propriétés composant un
objet et les méthodes pour les manipuler dans une seule entité appelée
classe de l'objet.
Les identifiants de classe obéissent aux même règles que les identifiants
de variables et de fonctions. Par convention, ils commencent par une
Majuscule et s’ils sont composés de plusieurs termes, chaque terme
OU
End Function
End Class
2.6. Instanciation
Pour qu'un objet ait une existence, il faut qu'il soit instancié. Une même
classe peut être instanciée plusieurs fois, chaque instance ayant des
propriétés porteuses de valeurs spécifiques.
En VB ou C#, il n'existe qu'une seule manière de créer une instance
d'une classe. Cette création d'instance peut se faire en deux temps :
Déclaration d'une variable du type de la classe de l'objet,
Instanciation de cette variable par l'instruction New.
Dim maCulture As System.Globalization.CultureInfo
maCulture = New System.Globalization.CultureInfo("Ar-Ma")
Les classes
Tous les identificateurs de classe commencent par une Majuscule. Par
exemple : Fraction.
Les propriétés
Tous les identificateurs public de propriétés commencent par une
majuscule, les propriétés private ou protected par une minuscule et un
préfixe désignant le type de la donnée pour les variables privées avec
une visibilité globale à la classe.
Ainsi, par exemple pour le nom du salarié : sNomSalarie
Méthode
Elle commence par une lettre en majuscule.
exemple : AjouterVehicule() ; Demarrer() ; InsererNouveau() ; le
premier mot est un verbe.
Utilisation de la fonction :
Private Sub InstancierClient()
Dim oClient As New Client
oClient.setIDClient(12)
Dim NumeroClient = oClient.getIDClient
End Sub
L'intérêt de passer par des fonctions Set est de pouvoir y localiser des
contrôles de validité des paramètres passés pour assurer la cohérence de
l'objet, en y déclenchant des exceptions par exemple. La sécurisation des
classes sera abordée ultérieurement dans ce cours.
.
4.2. Constructeurs
Quand une instance d'une classe d'objet est créée au moment de
l'instanciation d'une variable avec new, une fonction particulière est
exécutée. Cette fonction s'appelle le constructeur. Elle permet, entre
autres choses , d'initialiser chaque instance pour que ses propriétés aient
un contenu cohérent.
Un constructeur est défini par défaut pour chaque classe si aucun autre
constructeur n'est déclaré mais celui-ci ne peut être invoqué que si il
n’existe aucun autre constructeur.
A partir du moment où il existe un constructeur d'initialisation dans la
classe Client, il devient impossible de déclarer une instance comme on
l'a fait dans le T.D. précédent :
Pour la classe Client, on peut s'interroger sur le sens des valeurs par
défaut des propriétés.
Cependant, comme les propriétés de classe sont partagées par toutes les
instances de la classe, le fait d'envoyer un message Get pour obtenir
leur valeur n'a pas de sens.
En reformulant, on pourrait dire que le message Get à envoyer pour
obtenir le nombre d'instances de classe Client ne doit pas être envoyé à
une instance donnée de cette classe, mais plutôt à la classe elle-même.
De telles méthodes sont appelées méthodes de classe.
Dans la fonction Main, par exemple, si l'on veut affecter à une variable le
nombre d'instances de la classe Salarie, cela s'écrirait :
4.6. Destructeur
En VB.NET on ne déclenche pas explicitement la destruction d'un objet.
Les instances seront détruites par le système lorsqu'elles ne sont plus
référencées et qu’il sera nécessaire de récupérer des ressources
mémoire. Le programme qui se charge de cette tâche s'appelle le
Garbage Collector ou, en français, le ramasse-miettes. Le Garbage
Collector est un système capable de surveiller les objets créés par une
application, de déterminer quand ces objets ne sont plus utiles, de
s’informer sur ces objets et de détruire les objets pour récupérer leurs
ressources.
Overrides est indiqué pour spécifier que l’on souhaite que ce soit cette
procédure Finalize qui soit exécutée plutôt que celle de la classe de base.
On part ici de substitution.
5.L'Héritage
5.1. Notions abordées dans ce chapitre
Généralités sur l'héritage
Dérivation de la classe racine Object
5.2. L'héritage
Le concept d'héritage est l'un des trois principaux fondements de la
Programmation Orientée Objet, le premier étant l'encapsulation vu
précédemment dans les T.D. 1 et 2 et le dernier étant le polymorphisme
qui sera abordé plus loin dans ce document.
L'héritage consiste en la création d'une nouvelle classe dite classe
dérivée à partir d'une classe existante dite classe de base ou classe
parente.
L'héritage permet de :
End Function
ClasseA
ClasseB ClasseC
ClasseD
ClasseE
ClasseB ClasseC
ClasseE ClasseD
Object
NewClass
NewClass est une nouvelle classe insérée dans la hiérarchie de classes
construite à partir de Object.
Le mot clé Overloads est utilisé ici car la liste d'arguments diffère de la
liste d'origine : les deux méthodes, celle de la classe d’origine et celle de
la classe dérivée, n’ont donc pas la même signature. En effet, le
paramètre passé est de la classe Fraction et non de la classe Object.
End Sub
End Function
6.Les collections
6.1. Notions abordées dans ce chapitre
Tableaux statiques
Tableaux dynamiques : ArrayList
Dictionnaire Hashtable
Liste triée SortedList
For i = 0 To 4
Console.WriteLine("nom : " + aStr(i))
Next
Imports System.Collections
Dim al as ArrayList = new ArrayList()
al.Add(1)
al.Add(45)
al.Add(87)
al.Remove(1)
etc etc
Méthodes ou But
propriétés
Capacity Détermine le nombre d'éléments que le
tableau peut contenir
Count Donne le nombre d'éléments
actuellement dans le tableau
Add(object) Ajoute un élément au tableau
Remove(object) Enlève un élément du tableau
RemoveAt(int) Enlève un élément à l'indice fourni
Insert(int, object) Insère un élément à l'indice fourni
Clear() Vide le tableau
Contains(object) Renvoie un booléen vrai si l'objet fourni
est présent dans le tableau
al[index] Fournit l'objet situé à la valeur de index
Explorer le tableau
Dim al As ArrayList = New ArrayList
Dim objsal As new Salarie()
al.Add(sal)
'etc etc
For Each objsal In al
Console.WriteLine(objsal)
Next
Méthodes ou But
propriétés
Keys Collection des clés de la liste triée
Values Collection des valeurs ( objets ) de la
liste
Count Donne le nombre d'éléments
actuellement dans la liste
Add(object key, Ajoute un élément à la liste ( paire clé-
object value) valeur )
Remove(object key) Enlève un élément à la liste dont la
valeur correspond à la clé
RemoveAt(int) Enlève un élément à l'indice fourni
Clear() Vide la liste
7.Polymorphisme
7.1. Eléments vus dans ce chapitre
• Polymorphisme
• Fonctions virtuelles
• Classes génériques
7.2. Polymorphisme
Considérons l'exemple suivant :
Dim sal As Salarie = New Commercial
Salaire = sal.CalculerSalaireNet()
La variable sal est déclarée de type Salarie, mais elle est instanciée à
partir de la classe Commercial. Une telle affectation est correcte et ne
génère pas d'erreur de compilation. La question que l'on doit se poser
maintenant est la suivante : lors de l'envoi du message
calculSalaireNet à sal, quelle est la méthode qui va être exécutée ? La
8.Conclusion
Cette première approche vous a permis de découvrir les principes
essentiels mis en œuvre dans la programmation objet.
Vous apprendrez par la suite les mécanismes d’implémentation
d’Interfaces et l’approche méthodologique retenue pour le
développement des composants par couche (Interface, Métier, Système,
Accès aux données).
Vous pouvez aussi vous référez aux exemples en ligne sur le site de
Microsoft.
Pour bien démarrer en POO avec VB Net