Le classi in Visual Basic

Le classi sono tipi di riferimento definiti dallo sviluppatore che si affiancano ai tipi di riferimento predefiniti di Visual Basic (stringhe, oggetti).

Gli elementi di una classe possono essere variabili, funzioni e procedure e sono detti membri della classe.

I principali membri di una classe sono:

  • Campi
    le variabili interne della classe (dati)
  • Metodi
    le funzioni e le procedure della classe (comportamento)

Differenza tra classi e strutture. Le strutture sono tipi di valore definiti dallo sviluppatore che si affiancano ai tipi di valore predefiniti di Visual Basic (int, float, boolean, ecc.). Le classi, invece, sono tipi di riferimento che si affiancano alle stringhe e agli oggetti predefiniti del linguaggio.

Le caratteristiche delle classi in Visual Basic

Nel linguaggio VB.NET le classi rispettano le proprietà di ereditarietà, polimofismo e incapsulamento.

  • Ereditarietà
    Una classe derivata (classe figlia) eredita dalla superclasse (classe madre o classe base) gli attributi e i comportamenti.

    Nota. La classe derivata è una specializzazione della classe madre. Tutte le classi nel .NET Framework sono classi derivate dalla classe System.Object.

  • Polimorfismo
    Le classi derivate da una stessa superclasse possono implementare in modo diverso uno stesso comportamento, definito dalla classe madre.
  • Incapsulamento
    Una classe può proibire l'accesso ai suoi dati e metodi.

Come creare una classe in Visual Basic

Per creare una classe in Visual Basic utilizzo l'istruzione Class seguita dal nome della classe.

Class nome

End Class

Tutto ciò che è compreso tra Class ed End Class definisce il comportamento della classe, i suoi metodi e le sue proprietà.

Per definire i campi dichiaro le variabili interne della classe tramite l'istruzione Dim.

Class nome
Dim _anno As Integer
End Class

Per definire i metodi utilizzo l'istruzione Function.

Class nome
Dim _anno As Integer
Function NomeMetodo() As String
'...
End Function

End Class

Gli eventi

Gli eventi sono componenti della classe che inviano una notifica quando si verifica un particolare avvenimento.

Agli eventi può essere associate un'azione (handler).

Le proprietà get e set

Le proprietà sono metodi predefiniti della classe.

Permettono di accedere in lettura e scrittura ai campi (dati) della classe.

Le principali proprietà di una classe sono le funzioni di accesso:

  • Get
    legge il valore di un campo
  • Set
    scrive un valore in un campo

Nota. Le funzioni di accesso sono anche dette accessor. Nella programmazione OOP i due metodi sono anche conosciuti come getter e setter.

Un esempio pratico

Creo una classe un solo campo privato _nome di tipo stringa.

Il campo privato è inizializzato con il valore "non conosciuto".

  1. Public Class Persone
  2. Private _nome As String = "non conosciuto"
  3. End Class

Poi aggiungo i metodi getter e setter relativi al campo con una Public Property per definire le proprietà del campo _name.

  1. Public Class Persone
  2. Private _nome As String = "non conosciuto"
  3. Public Property Nome As String
  4. Get
  5. Return _nome
  6. End Get
  7. Set(ByVal valore As String)
  8. _nome = valore
  9. End Set
  10. End Property
  11. End Class

Quindi creo un nuovo oggetto nella classe

Dim Andrea As New Persone()

Quando interrogo il campo Andrea.Nome VB usa il metodo get e restituisce il valore "non conosciuto".

Debug.Write(Andrea.Nome)

Quando assegno un valore al campo Andrea.Nome VB usa il metodo set e salva il valore destro nel campo

Andrea.Nome = "Andrea Minini"

Ora interrogando di nuovo il campo viene restituita la stringa "Andrea Minini".

Esempio 2

Quando i campi sono molti mi conviene usare una forma più compatta.

Indico ogni campo con una Public Property.

  1. Public Class Persone
  2. Public Property Nome As String = "non conosciuto"
  3. End Class

In questa forma le proprietà sono create automaticamente dal compilatore.

Non devo scriverle manualmente per ogni singolo campo.

I modificatori di accessibilità

L'accesso alle classi e ai membri di una classe (campi, proprietà, metodi) è regolato dai modificatori di accessibilità (access modifier).

  • Public
    Rende accessibile l'elemento a tutte le classi.
  • Protected
    Rende accessibile l'elemento solo alle classi derivate.
  • Private
    Rende inaccessibile l'elemento.
  • Friend
    Rende accessibile l'elemento all'interno dell'assembly.
  • Protected Friend
    Rende accessibile l'elemento alle classi derivate e all'interno dell'assembly.

La parola chiave del modificatore va posta prima del nome della classe o del membro.

  1. Public Class nome {
  2. Private Dim _nomevar as Integer
  3. ...
  4. }

In assenza di access modifier VB considera di default la parola Private.

Nota. E' consigliabile definire i campi della classe come privati rendendoli eventualmente accessibili tramite una proprietà getter/setter.

Come istanziare un oggetto nella classe

Per istanziare un oggetto nella classe utilizzo il metodo costruttore New.

Dim nomeoggetto As New nomeclasse

Con l'istanza il Commun Language Runtime (CLR) alloca un'area di memoria dedicata all'oggetto.

L'oggetto eredita campi, proprietà e metodi della classe.

nomeoggetto.membroclasse

Cos'è il metodo costruttore

Il metodo costruttore New viene invocato quando si istanzia un oggetto nella classe.

Posso personalizzare il metodo costruttore assegnando dei valori di default alle variabili della classe.

  1. Public Class nomeclasse
  2. Private _nomevar As String
  3. Public Sub New()
  4. _nomevar="prova"
  5. End Sub
  6. End Class

Al momento dell'istanza, l'oggetto eredita il campo nomevar con il valore "prova".

Oltre al costruttore di default, una classe può contenere diversi costruttori al suo interno sfruttando l'overloading.

E così via.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Le classi in Visual Basic