Istruzione Class (Visual Basic)
Aggiornamento: novembre 2007
Consente di dichiarare il nome di una classe e introduce la definizione delle variabili, delle proprietà, degli eventi e delle routine corrispondenti.
[ <attributelist> ] [ accessmodifier ] [ Shadows ] [ MustInherit | NotInheritable ] [ Partial ] _
Class name [ ( Of typelist ) ]
[ Inherits classname ]
[ Implements interfacenames ]
[ statements ]
End Class
Parti
attributelist
Facoltativo. Vedere Elenco degli attributi.accessmodifier
Facoltativo. Può essere uno dei seguenti:Shadows
Facoltativo. Vedere Shadows.MustInherit
Facoltativo. Vedere MustInherit.NotInheritable
Facoltativo. Vedere NotInheritable.Partial
Facoltativo. Indica che si tratta di una definizione parziale della classe. Vedere Partial (Visual Basic).name
Obbligatorio. Nome della classe. Vedere Nomi di elementi dichiarati.Of
Facoltativo. Specifica che si tratta di una classe generica.typelist
Obbligatoria se si utilizza la parola chiave Of. Elenco di parametri di tipo per la classe. Vedere Elenco dei tipi.Inherits
Facoltativo. Indica che la classe eredita membri di un'altra classe. Vedere Istruzione Inherits.classname
Obbligatoria se si utilizza l'istruzione Inherits. Nome della classe dalla quale deriva la classe.Implements
Facoltativo. Indica che la classe consente di implementare i membri di una o più interfacce. Vedere Istruzione Implements.interfacenames
Obbligatoria se si utilizza l'istruzione Implements. Nomi delle interfacce implementate dalla classe.statements
Facoltativo. Istruzioni che definiscono i membri della classe corrente.End Class
Obbligatorio. Consente di terminare la definizione Class.
Note
Istruzione Class che definisce un nuovo tipo di dati. Una classe rappresenta un blocco di generazione fondamentale per la programmazione orientata agli oggetti (OOP). Per ulteriori informazioni, vedere Programmazione orientata a oggetti in Visual Basic e Classi: progetti iniziali degli oggetti.
È possibile utilizzare Class solo a livello di modulo o di spazio dei nomi. In altri termini, il contesto della dichiarazione per una classe deve essere un file di origine, uno spazio dei nomi, una classe, una struttura, un modulo o un'interfaccia e non può essere una routine o un blocco. Per ulteriori informazioni, vedere Contesti delle dichiarazioni e livelli di accesso predefinito.
Ciascuna istanza di una classe presenta una durata indipendente da tutte le altre istanze. In questo caso la durata ha inizio quando viene creata da una clausola New (Visual Basic) o da una funzione quale Funzione CreateObject (Visual Basic) e termina dopo che tutte le variabili che fanno riferimento all'istanza sono state impostate su Nothing (Visual Basic) o sulle istanze di altre classi.
L'accesso predefinito delle classi è di tipo Friend (Visual Basic). È possibile modificarne i livelli di accesso mediante i modificatori di accesso. Per ulteriori informazioni, vedere Livelli di accesso in Visual Basic.
Regole
Nidificazione. È possibile definire una classe all'interno di un'altra classe. La classe esterna viene denominata classe contenente e la relativa classe interna viene denominata classe nidificata.
Ereditarietà. Se la classe utilizza l'Istruzione Inherits, è possibile specificare solo una classe base o un'interfaccia. Una classe non può ereditare da più elementi.
Una classe non può ereditare da un'altra classe che dispone di un livello di accesso più restrittivo. Ad esempio una classe Public non può ereditare da una classe Friend.
Una classe non può ereditare da una classe nidificata all'interno di essa.
Implementazione. Se la classe utilizza l'Istruzione Implements, è necessario implementare ogni membro definito da ciascuna interfaccia specificata in interfacenames. Un'eccezione a questa regola è costituita dalla reimplementazione di un membro della classe base. Per ulteriori informazioni, vedere "Reimplementazione" in Implements (Visual Basic).
Proprietà predefinita. Una classe può specificare soltanto una proprietà come proprietà predefinita. Per ulteriori informazioni, vedere Proprietà predefinite.
Comportamento
Livello di accesso. In una classe è possibile dichiarare ogni membro con un proprio livello di accesso. L'accesso predefinito dei membri di una classe è di tipo Public (Visual Basic), ad eccezione delle variabili e delle costanti che presentano l'accesso predefinito Private (Visual Basic). Se una classe dispone di un accesso più limitato di quello dei suoi membri, il livello di accesso della classe è prioritario.
Ambito. Una classe appartiene allo spazio dei nomi, alla classe, alla struttura o al modulo in cui è contenuta.
L'ambito di un ogni membro di un classe è l'intera classe.
Durata. Visual Basic non supporta le classi static. Dal punto di vista funzionale un modulo si comporta come una classe static. Per ulteriori informazioni, vedere Istruzione Module.
Le durate dei membri di classe dipendono dalla modalità e dal percorso della dichiarazione. Per ulteriori informazioni, vedere Durata in Visual Basic.
Qualificazione. Il codice all'esterno di una classe deve qualificare il nome di un membro con il nome della classe.
Se il codice all'interno di una classe nidificata crea un riferimento non qualificato a un elemento di programmazione, questo verrà cercato innanzitutto nella classe nidificata, quindi nella classe che lo contiene e così via fino a raggiungere l'elemento più esterno. Per ulteriori informazioni, vedere Risoluzione di un riferimento quando più variabili hanno lo stesso nome.
Classi e moduli
Questi elementi hanno molte similitudini, ma vi sono anche alcune differenze significative.
Terminologia. Nelle versioni precedenti di Visual Basic vengono riconosciuti due tipi di moduli: moduli della classe (file cls) e moduli standard (file bas). La versione corrente li definisce classi e moduli, rispettivamente.
Membri condivisi. È possibile controllare se un membro di una classe è un membro condiviso o dell'istanza.
Orientamento dell'oggetto. Le classi sono orientate agli oggetti mentre i moduli no. È possibile creare una o più istanze di una classe. Per ulteriori informazioni, vedere Confronto tra classi e moduli.
Esempio
Nell'esempio seguente viene utilizzata un'istruzione Class per definire una classe e numerosi membri.
Class bankAccount
Shared interestRate As Decimal
Private accountNumber As String
Private accountBalance As Decimal
Public holdOnAccount As Boolean = False
Public ReadOnly Property balance() As Decimal
Get
Return accountBalance
End Get
End Property
Public Sub postInterest()
accountBalance = accountBalance * (1 + interestRate)
End Sub
Public Sub postDeposit(ByVal amountIn As Decimal)
accountBalance = accountBalance + amountIn
End Sub
Public Sub postWithdrawal(ByVal amountOut As Decimal)
accountBalance = accountBalance - amountOut
End Sub
End Class
Vedere anche
Attività
Procedura: utilizzare una classe generica
Concetti
Durata degli oggetti: come creare e distruggere oggetti
Riferimenti
Istruzione Interface (Visual Basic)