Klassuttryck (Visual Basic)
Deklarerar namnet på en klass och introducerar definitionen av variabler, egenskaper, händelser och procedurer som klassen består av.
Syntax
[ <attributelist> ] [ accessmodifier ] [ Shadows ] [ MustInherit | NotInheritable ] [ Partial ] _
Class name [ ( Of typelist ) ]
[ Inherits classname ]
[ Implements interfacenames ]
[ statements ]
End Class
Delar
Period | Definition |
---|---|
attributelist |
Valfritt. Se Attributlista. |
accessmodifier |
Valfritt. Kan vara något av följande: - Offentliga - Skyddade - Vän - Privat - Skyddad vän - Privat skyddad Se Åtkomstnivåer i Visual Basic. |
Shadows |
Valfritt. Se Skuggor. |
MustInherit |
Valfritt. Se MustInherit. |
NotInheritable |
Valfritt. Se NotInheritable. |
Partial |
Valfritt. Anger en partiell definition av klassen. Se Partiell. |
name |
Obligatoriska. Namnet på den här klassen. Se Deklarerade elementnamn. |
Of |
Valfritt. Anger att det här är en allmän klass. |
typelist |
Krävs om du använder nyckelordet Av . Lista över typparametrar för den här klassen. Se Typlista. |
Inherits |
Valfritt. Anger att den här klassen ärver medlemmarna i en annan klass. Se Ärver-instruktion. |
classname |
Krävs om du använder -instruktionen Inherits . Namnet på klassen som den här klassen härleds från. |
Implements |
Valfritt. Anger att den här klassen implementerar medlemmarna i ett eller flera gränssnitt. Se Implementeringsinstruktor. |
interfacenames |
Krävs om du använder -instruktionen Implements . Namnen på de gränssnitt som den här klassen implementerar. |
statements |
Valfritt. Instruktioner som definierar medlemmarna i den här klassen. |
End Class |
Obligatoriska. Class Avslutar definitionen. |
Kommentarer
En Class
instruktion definierar en ny datatyp. En klass är en grundläggande byggsten för objektorienterad programmering (OOP). Mer information finns i Objekt och klasser.
Du kan bara använda Class
på namnområdes- eller modulnivå. Det innebär att deklarationskontexten för en klass måste vara en källfil, namnrymd, klass, struktur, modul eller gränssnitt och kan inte vara en procedur eller ett block. Mer information finns i Deklarationskontexter och standardåtkomstnivåer.
Varje instans av en klass har en livslängd oberoende av alla andra instanser. Den här livslängden börjar när den skapas av en ny operator-sats eller av en funktion som CreateObject. Den slutar när alla variabler som pekar på instansen har angetts till Ingenting eller till instanser av andra klasser.
Klasser som standard är vänåtkomst . Du kan justera deras åtkomstnivåer med åtkomstmodifierarna. Mer information finns i Åtkomstnivåer i Visual Basic.
Regler
Häckande. Du kan definiera en klass i en annan. Den yttre klassen kallas för den innehållande klassen och den inre klassen kallas för en kapslad klass.
Arv. Om klassen använder instruktionen Ärver kan du bara ange en basklass eller ett gränssnitt. En klass kan inte ärva från fler än ett element.
En klass kan inte ärva från en annan klass med en mer restriktiv åtkomstnivå. En
Public
klass kan till exempel inte ärva från enFriend
klass.En klass kan inte ärva från en klass som är kapslad i den.
Genomförandet. Om klassen använder Implements-instruktionen måste du implementera varje medlem som definieras av varje gränssnitt som du anger i
interfacenames
. Ett undantag till detta är omimplementering av en basklassmedlem. Mer information finns i "Omimplementering" i Implementeringar.Standardegenskap. En klass kan ange högst en egenskap som standardegenskap. Mer information finns i Standard.
Funktionssätt
Åtkomstnivå. I en klass kan du deklarera varje medlem med sin egen åtkomstnivå. Klassmedlemmar är standard för offentlig åtkomst, förutom variabler och konstanter, som är standard för privat åtkomst. När en klass har mer begränsad åtkomst än en av dess medlemmar har klassåtkomstnivån företräde.
Omfattning. En klass finns i omfånget i dess innehållande namnrymd, klass, struktur eller modul.
Omfånget för varje klassmedlem är hela klassen.
Livslängd. Visual Basic stöder inte statiska klasser. Den funktionella motsvarigheten till en statisk klass tillhandahålls av en modul. Mer information finns i Modulöversikt.
Klassmedlemmar har livslängd beroende på hur och var de deklareras. Mer information finns i Livslängd i Visual Basic.
Kvalifikationer. Kod utanför en klass måste kvalificera en medlems namn med namnet på den klassen.
Om kod i en kapslad klass gör en okvalificerad referens till ett programmeringselement söker Visual Basic efter elementet först i den kapslade klassen, sedan i dess innehållande klass och så vidare ut till det yttersta elementet som innehåller elementet.
Klasser och moduler
Dessa element har många likheter, men det finns även några viktiga skillnader.
Terminologi. Tidigare versioner av Visual Basic känner igen två typer av moduler: klassmoduler (.cls-filer) och standardmoduler (.bas-filer). Den aktuella versionen anropar dessa klasser respektive moduler.
Delade medlemmar. Du kan styra om en medlem i en klass är en delad medlem eller instansmedlem.
Objektorientering. Klasser är objektorienterade, men moduler är det inte. Du kan skapa en eller flera instanser av en klass. Mer information finns i Objekt och klasser.
Exempel
I följande exempel används en Class
-instruktion för att definiera en klass och flera medlemmar.
Class BankAccount
Shared interestRate As Decimal
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