Condividi tramite


Istruzione Class (Visual Basic)

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

Termine

Definizione

attributelist

Parametro facoltativo. Vedere Elenco degli attributi.

accessmodifier

Parametro facoltativo. ad esempio uno dei seguenti:

Vedere Livelli di accesso in Visual Basic.

Shadows

Parametro facoltativo. Vedere Shadows.

MustInherit

Parametro facoltativo. Vedere MustInherit (Visual Basic).

NotInheritable

Parametro facoltativo. Vedere NotInheritable (Visual Basic).

Partial

Parametro facoltativo. Indica che si tratta di una definizione parziale della classe. Vedere Partial (Visual Basic).

name

Obbligatorio. Nome della classe. Per informazioni, vedere Nomi di elementi dichiarati (Visual Basic).

Of

Parametro 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

Parametro 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

Parametro 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

Parametro 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 predefinito fondamentale per la programmazione orientata agli oggetti (OOP). Per ulteriori informazioni, vedere Oggetti e classi in Visual Basic.

È 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 predefiniti (Visual Basic).

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 Operatore New (Visual Basic) o da una funzione quale CreateObject 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 gli appositi modificatori. Per ulteriori informazioni, vedere Livelli di accesso in Visual Basic.

Regole

  • Annidamento. È 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 annidata.

  • Ereditarietà. Se la classe utilizza l'Istruzione Inherits, è possibile specificare una sola interfaccia o classe di base. 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 annidata all'interno di essa.

  • Implementazione. Se la classe utilizza l'Istruzione Implements, è necessario implementare ogni membro definito da ogni interfaccia specificata in interfacenames. Un'eccezione a questa regola è costituita dalla reimplementazione di un membro della classe base. Per ulteriori informazioni, vedere "Reimplementazione" in Clausola Implements (Visual Basic).

  • Proprietà predefinita. Una classe può specificare soltanto una proprietà come proprietà predefinita. Per ulteriori informazioni, vedere Default (Visual Basic).

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 annidata crea un riferimento non qualificato a un elemento di programmazione, questo verrà cercato innanzitutto nella classe annidata, quindi nella classe che lo contiene e così via fino a raggiungere l'elemento più esterno.

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 di classe (file con estensione cls) e moduli standard (file con estensione 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 Oggetti e classi in Visual Basic.

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 (Visual Basic)

Riferimenti

Istruzione Interface (Visual Basic)

Istruzione Module

Istruzione Property

Concetti

Strutture e classi (Visual Basic)

Durata degli oggetti: come creare e distruggere oggetti (Visual Basic)

Tipi generici in Visual Basic (Visual Basic)

Altre risorse

Oggetti e classi in Visual Basic