Clasa de obiecte este o reprezentare abstracta a unei entitati. Obiectul reprezinta o manifestare concreta a unei clase. Obiectul este structura care contine date si metode de manipulare a datelor.
Un obiect contine date prin intermediul campurilor si proprietatilor:
- campul: stocheaza date si este similar unei variabile;
- proprietatea: extrage si modifica valoarea unui camp prin proceduri Get si Set; astfel, datele sunt izolate, iar valorile din campuri sunt validate.
Un obiect contine si metode prin care sunt implementate actiuni. Metodele unui obiect iau forma procedurilor.
O actiune recunoscuta de de un obiect poarta denumirea de eveniment […].
O clasa de obiecte poate implementa interfete in toate aspectele definite in acestea. Interfata reprezinta o colectie de elemente de programare si nu contine partea de implementare.
Tipuri de clase de obiecte in functie de sursa definirii:
- incluse in VB.NET;
- construite in alte aplicatii;
- construite sau modificate de catre dezvoltator in cadrul aplicatiei.
Clasa de obiecte se comporta ca un tip de date, iar utilizatorul poate defini variabile de acest tip. Variabilele se numesc obiecte, continand date si actiuni.
Ca exemplu, se considera clasa de obiecte Task, avand urmatoarele campuri:
- cDenTask: denumire task;
- cTipTask: categorie task;
- cResTask: nume responsabil task;
- cPrioTask: categorie prioritate task.
Campurile cDenTask, cTipTask si cResTask sunt definite cu tipul String, iar campul cPrioTask este de tip Boolean.
Toate campurile sunt definite cu modificatorul de acces Private […], ceea ce inseamna ca accesul este restrictionat la codul sursa dezvoltat in cadrul clasei. Accesarea si modificarea valorilor campurilor sunt realizate prin proprietatile DenTask, TipTask, ResTask si PrioTask.
Public Class Task
'Campuri
Private cDenTask As String
Private cTipTask As String
Private cResTask As String
Private cPrioTask As Boolean
'Proprietati clasa Task
'proprietate camp cDenTask
Public Property DenTask()
Get
Return cDenTask
End Get
Set(ByVal value)
cDenTask = value
End Set
End Property
'proprietate camp cTipTask
Public Property TipTask()
Get
Return cTipTask
End Get
Set(ByVal value)
cTipTask = value
End Set
End Property
'proprietatea camp cResTask
Public Property ResTask()
Get
Return cResTask
End Get
Set(ByVal value)
cResTask = value
End Set
End Property
'proprietate camp cPrioTask
Public Property PrioTask()
Get
Return cPrioTask
End Get
Set(ByVal value)
cPrioTask = value
End Set
End Property
'metoda clasa de obiecte Task
Public Function ModificaPrioritate(ByVal prioNou As Boolean) As String
cPrioTask = prioNou
Dim res As String
res = "A fost modificata prioritatea task-ului pe valoarea " &_
cPrioTask & " !"
Return res
End Function
' exemplu de constructor fara parametri
Public Sub New()
cDenTask = "Task Nou"
cTipTask = "Tip Task Nou"
cResTask = "Responsabil Task Nou"
cPrioTask = False
End Sub
'supraincarcare constructor - varianta constructor cu parametri
Public Sub New(ByVal denT As String, ByVal tipT As String, _
ByVal resT As String, ByVal prioT As Boolean)
cDenTask = denT
cTipTask = tipT
cResTask = resT
cPrioTask = prioT
End Sub
End Class
Pe langa campuri si proprietati, clasa de obiecte Task definita mai sus contine o metoda denumita ModificaPrioritate construita ca o procedura de tip Function si doua metode constructor supraincarcate.
Metoda constructor este una speciala, fiind implementata prin procedura Sub New. Codul din metoda constructor se executa inaintea restului de cod definit in clasa de obiecte. Metoda constructor este apelata la crearea obiectului.
Cand nu mai sunt utilizate, obiectele sunt distruse prin sistemul reference-tracing garbage collection. Distrugerea obiectelor se face pe baza metodei speciale denumita destructor si implementata prin procedura Sub Finalize. Spre deosebire de metoda constructor, destructorul nu trebuie apelat explicit, sistemul ocupandu-se de apelarea automata a destructorului.