ENVIRONNEMENT DE DEVELOPPEMENT
ENVIRONNEMENT DE DEVELOPPEMENT
Chapitre 3:
Concepts de base de la P.O.O.
sous Visual basic.Net
FSEG Tunis 2011-2012
Cours Environnement de développement – Dr. Ilyes Jenhani © 2012
1
1
VB.Net O.O.
(cid:1) VB.Net est un langage de programmation Orientée Objet
(cid:1) Programmation O.O. :
(cid:1) Encapsulation
(cid:1) Héritage
(cid:1) Polymorphisme
(cid:1) Création d‘une classe :
(cid:1) Champs
(cid:1) Constructeurs et destructeur
(cid:1) Méthodes
(cid:1) Accesseurs
2
2
Définition d‘une classe
(cid:1) Définition d’une classe :
Classe abstraite : non instanciable
Classe finale : ne peux pas être classe mère
[ Public | Private | Protected | Friend | Protected Friend ]
[ MustInherit | NotInheritable ]
Class nom_classe
[ Inherits nom_classe_base]
[ Implements nom_classe_interface]
'propriétés, méthodes ...
End Class
Dim p1 as Personne
p1 = new Personne
Public Class Test
Public Shared Sub main( )
' ou bien dim p1 as new Personne
Exemple:
Public Class Personne
Dim nom As String
Dim prenom As String
Advertisement
Dim date_naiss As Date
End Class
' initialisation
With p1
.nom="AAA"
.prenom="BBB"
End with
End sub
End Class
3
Constructeur/Destructeur d‘une classe
(cid:1) Constructeur :
(cid:1) Méthode particulière qui servira pour créer des instances (sert aussi pour
initialiser les champs d‘un objets)
(cid:1) Son nom est toujours : public sub New ([paramètres])
(cid:1) Avec ou sans paramètres (cons. Par défaut)
Public Sub New()
nom = ""
prenom = ""
date_naiss = ""
End Sub
Public Sub New(n As String, p As String, d As Date)
nom = n
prenom = p
date_naiss = d
End Sub
4
Constructeur/Destructeur d‘une classe
(cid:1) Destructeur :
(cid:1) Méthode particulière qui servira pour détruire une instance
(cid:1) Pas vraiment nécessaire (faite automatiquement)
(cid:1) Sa signature :
Protected Overrides Sub finalize()
'quelque code comme la fermeture d‘une connexion
End Sub
5
Accesseurs d‘une classe
(cid:1) Getters / Setters :
(cid:1) Méthodes qui servent à récupérer / à modifier les valeurs des
champs (private) d‘un objet.
Public Class Personne
Private nom As String
Advertisement
Private prenom As String
Private date_naiss As Date
Public Property Nom( ) As String
Get
return nom
End Get
Set (Value As String)
nom = Value
End Set
End Property
'...
End Class
(cid:1) Utilisation :
Public Class Test
Public Shared Sub main( )
Dim p1 as new Personne
p1.Nom = "AAA"
Dim n As String
n= p1.Nom
Console.WriteLine(n)
‘affiche AAA
End sub
End Class
(cid:1) Shared ≡ membre statique
(partagé par toutes les
instances d‘une classe)
6
Méthodes d‘une classe
(cid:1) Les méthodes : procédures ou fonctions à l’intérieur d’une
classe qui servent à manipuler les attributs de la classe.
(cid:1) Généralement, les méthodes sont déclarées "Public"
(cid:1) Surcharge de méthodes : création au sein d‘une classe
de méthodes ayant le même nom mais avec des
paramètres différents (en nombre et/ou en type).
(cid:1) Modificateur overloads
(cid:1) Les points suivants ne sont pas pris en compte pour
distinguer deux méthodes surchargées :
(cid:1) Le nom des paramètres
(cid:1) Le type de retour d’une fonction
(cid:1) Les modificateurs ByVal ou ByRef appliqués aux paramètres de la
méthode.
7
Advertisement
Surcharge de méthodes (exemple)
Public Class Personne
'les attributs de la classe personne...
Public overloads Sub affichage()
Console.Write(“Mr {0} {1} né le {2}”, nom, prenom, date_naiss)
End Sub
Public overloads Sub affichage(ByVal langue As String)
Select Case langue
Case "fr"
Console.Write("Mr {0} {1} né le {2}", nom, prenom, date_naiss)
Case "en"
Console.Write("Mr {0} {1} was born the {2}", nom, prenom, date_naiss)
End Select
End Sub
End class
8
Héritage et redéfinition de méthodes
(cid:1) Héritage : relation entre 2 classes A et B "A est un B".
Public Class A Inherits B
'Les attributs additonnels de B ...
'Les méthodes additionnelles de B ...
End Class
Public Class Client Inherits Personne
Private code As Integer
Public Sub New (n as String, p as String,
d as Date, co as integer)
MyBase.New(n,p,d)
code=co
End sub
Public Overrides Sub affichage( )
MyBase.affichage()
Console.Write(" Code Client : {0}",code)
End Sub
End Class
Utilisation :
Public Class Test
Public Shared Sub main( )
Dim c as Client
c=new Client
("AAA","BB",#12/12/1990#,1123);
c.affichage()
' Affiche : Mr AAA BB né le
Advertisement
' 12/12/1990 Code Client : 1123
End sub
End Class
9
Classes abstraites
(cid:1) Une classe abstraite est une classe qui n‘implémente pas forcément
toutes ses méthodes (cid:1) n‘est pas instanciable.
(cid:1) C‘est une classe qui ne peut être utilisée qu‘en tant que classe mère.
(cid:1) Sert à factoriser du code pour les classes dérivées (filles).
(cid:1) Une classe qui hérite d‘une classe abstraite doit implémenter les
méthodes qui restent.
Public MustInherit Class classAbs
'... Contient au moins une méthode avec le modificateur mustOverride
End Class
(cid:1) 3 types de méthodes possibles dans la classe abstraite :
(cid:1) Public Overridable Sub X( ) ... End Sub : X( ) peut être redéfinie
(cid:1) Public sub Y( ) ... End Sub : Y ( ) ne peut pas être redéfinie
(cid:1) Public MustOverride Sub Z ( ) : Z () doit être redéfinie (public overrides Sub
Z ( ) ... End sub)
10
Classes interfaces
(cid:1) Une classe interface est une classe qui n‘implémente aucune de ses
méthodes (cid:1) les méthodes sont seulement déclarées.
(cid:1) C‘est une classe qui décrit les services qu‘elle ofrre
(cid:1) Une classe qui implémente une interface doit obligatoirement
implémenter chacune des méthodes déclarées dans l’interface.
(cid:1) Une classe peut implémenter une ou plusieurs classes interfaces
Public Interface interf1
' public sub X( )
'...
End Interface
Public class c1 Implements interf1
Public sub X( ) Implements interf1.X
...
End Sub
End class
11