Il metodo costruttore New della classe in Visual Basic

Nel linguaggio Visual Basic il metodo costruttore New definisce i valori dei campi di un oggetto quando viene istanziato per la prima volta in una classe.

    Un esempio pratico

    Creo una classe con una variabile privata (_nomevar) nascosta dall'esterno.

    1. Public Class nomeclasse
    2. Private _nomevar As String
    3. Public Sub New()
    4. _nomevar="prova"
    5. End Sub
    6. Public Property Nome As String
    7. Get
    8. Return _nomevar
    9. End Get
    10. Set (ByVal valore As String)
    11. _nomevar=valore
    12. End Set
    13. End Property
    14. End Class

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

    Dim nomeoggetto As New nomeclasse()

    Al momento dell'istanza l'oggetto eredita automaticamente tutti i metodi, i campi (_nomevar) e le proprietà (new, get, set) della classe.

    Inoltre, il metodo costruttore New assegna il valore "prova" all a variabile locale _nomevar dell'oggetto.

    Quando interrogo l'oggetto viene invocata la proprietà get della classe, un altro metodo che legge il valore della variabile interna _nomevar e la invia all'esterno.

    console.writeln(nomeoggetto.Nome)

    Il metodo get restituisce l'output

    prova

    Invocando la proprietà set, invece, posso modificare il valore assegnato alla variabile locale _nomevar

    nomeoggetto.Nome="prova2"

    Esempio 2 (il passaggio dei parametri)

    Il metodo costruttore può essere configurato per accettare il passaggio dei parametri al momento dell'istanza.

    I parametri in ingresso devo esplicitamente indicarli tra le parentesi tonde del metodo costruttore.

    1. Public Class nomeclasse
    2. Private _nomevar As String
    3. Public Sub New(ByVal valore As String)
    4. _nomevar=valore
    5. End Sub
    6. Public Property Nome As String
    7. Get
    8. Return _nomevar
    9. End Get
    10. Set (ByVal valore As String)
    11. _nomevar=valore
    12. End Set
    13. End Property
    14. End Class

    Quando istanzio l'oggetto devo indicare i valori da assegnare ai parametri tra le parentesi tonde della chiamata.

    Dim nomeoggetto As New nomeclasse("prova2")

    In questo esempio, il metodo costruttore New legge il valore "prova2" che invio tramite l'istanza e lo assegna alla variabile interna _nomevar della classe.

    Esempio 3 (overloading)

    Grazie all'overloading posso creare più metodi costruttori New in una classe con diversi parametri in ingresso.

    A seconda della chiamata viene invocato uno costruttore oppure un altro.

    1. Public Class nomeclasse
    2. Private _nomevar As String
    3. Public Sub New()
    4. _nomevar="prova"
    5. End Sub
    6. Public Sub New(ByVal valore As String)
    7. _nomevar=valore
    8. End Sub
    9. Public Property Nome As String
    10. Get
    11. Return _nomevar
    12. End Get
    13. Set (ByVal valore As String)
    14. _nomevar=valore
    15. End Set
    16. End Property
    17. End Class

    In quest'ultimo codice ci sono due metodi costruttori, uno senza parametri New() e l'altro con un parametro in ingresso New(ByVal valore As String).

    Se istanzio un oggetto senza passare un parametro, viene invocato il primo metodo costruttore (rosso)

    Dim nomeoggetto As New nomeclasse()

    Viceversa, se istanzio un oggetto passando un parametro, viene invocato il secondo metodo costruttore (blu).

    Dim nomeoggetto As New nomeclasse("nuovovalore")

    A seconda dell'istanza, viene chiamato un metodo costruttore o un altro.

    E così via.

     


     

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

    FacebookTwitterLinkedinLinkedin
    knowledge base

    Le classi in Visual Basic