Environnement de développement

FSEG
Page 1 sur 11Lecteur de document UniversityLib

Environnement de développement

FSEG · Programming, Object-Oriented Programming, Visual Basic.Net · course

Browse all programmation documents

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