Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Deklariert den Namen einer Klasse und führt die Definition der Variablen, Eigenschaften, Ereignisse und Prozeduren ein, die die Klasse umfasst.
Syntax
[ <attributelist> ] [ accessmodifier ] [ Shadows ] [ MustInherit | NotInheritable ] [ Partial ] _
Class name [ ( Of typelist ) ]
[ Inherits classname ]
[ Implements interfacenames ]
[ statements ]
End Class
Bestandteile
| Begriff | Definition |
|---|---|
attributelist |
Wahlfrei. Siehe Attributliste. |
accessmodifier |
Wahlfrei. Dabei kann es sich um eine der folgenden Methoden handeln: - Öffentlich - Geschützt - Freund - Privat - Geschützter Freund - Privat geschützt Siehe Access-Ebenen in Visual Basic. |
Shadows |
Wahlfrei. Siehe Schatten. |
MustInherit |
Wahlfrei. Siehe MustInherit. |
NotInheritable |
Wahlfrei. Siehe "NotInheritable". |
Partial |
Wahlfrei. Gibt eine partielle Definition der Klasse an. Siehe Teilweise. |
name |
Erforderlich. Name dieser Klasse. Siehe deklarierte Elementnamen. |
Of |
Wahlfrei. Gibt an, dass es sich um eine generische Klasse handelt. |
typelist |
Erforderlich, wenn Sie das Schlüsselwort "Of" verwenden. Liste der Typparameter für diese Klasse. Siehe Typliste. |
Inherits |
Wahlfrei. Gibt an, dass diese Klasse die Member einer anderen Klasse erbt. Siehe Inherits-Anweisung. |
classname |
Erforderlich, wenn Sie die Inherits Anweisung verwenden. Der Name der Klasse, von der diese Klasse abgeleitet wird. |
Implements |
Wahlfrei. Gibt an, dass diese Klasse die Member einer oder mehrerer Schnittstellen implementiert. Siehe Implements-Anweisung. |
interfacenames |
Erforderlich, wenn Sie die Implements Anweisung verwenden. Die Namen der Schnittstellen, die diese Klasse implementiert. |
statements |
Wahlfrei. Anweisungen, die die Member dieser Klasse definieren. |
End Class |
Erforderlich. Beendet die Class Definition. |
Bemerkungen
Eine Class Anweisung definiert einen neuen Datentyp. Eine Klasse ist ein grundlegender Baustein der objektorientierten Programmierung (OOP). Weitere Informationen finden Sie unter "Objekte und Klassen".
Sie können nur auf Namespace- oder Modulebene verwenden Class . Dies bedeutet, dass der Deklarationskontext für eine Klasse eine Quelldatei, ein Namespace, eine Klasse, eine Struktur, ein Modul oder eine Schnittstelle sein muss und keine Prozedur oder ein Block sein kann. Weitere Informationen finden Sie unter Deklarationskontexte und Standardzugriffsebenen.
Jede Instanz einer Klasse verfügt über eine Lebensdauer unabhängig von allen anderen Instanzen. Diese Lebensdauer beginnt, wenn sie von einer New Operator-Klausel oder von einer Funktion wie z CreateObject. B. erstellt wird. Sie endet, wenn alle Variablen, die auf die Instanz verweisen, auf Nothing oder auf Instanzen anderer Klassen festgelegt wurden.
Klassen sind standardmäßig auf Friend-Zugriff festgelegt. Sie können ihre Zugriffsebenen mit den Zugriffsmodifizierern anpassen. Weitere Informationen finden Sie unter Access-Ebenen in Visual Basic.
Regeln
Schachtelung. Sie können eine Klasse innerhalb einer anderen definieren. Die äußere Klasse wird als enthaltende Klasse bezeichnet, und die innere Klasse wird als geschachtelte Klasse bezeichnet.
Erbschaft. Wenn die Klasse die Inherits-Anweisung verwendet, können Sie nur eine Basisklasse oder Schnittstelle angeben. Eine Klasse kann nicht von mehreren Elementen erben.
Eine Klasse kann nicht von einer anderen Klasse mit einer restriktiveren Zugriffsebene erben. Beispielsweise kann eine
PublicKlasse nicht von einerFriendKlasse erben.Eine Klasse kann nicht von einer klasse erben, die darin geschachtelt ist.
Implementierung. Wenn die Klasse die Implements-Anweisung verwendet, müssen Sie jedes Element implementieren, das von jeder Schnittstelle definiert wird, in
interfacenamesder Sie angeben. Eine Ausnahme ist die ErneuteImplementierung eines Basisklassenmempels. Weitere Informationen finden Sie unter "Reimplementation" in Implements.Default-Eigenschaft. Eine Klasse kann höchstens eine Eigenschaft als Standardeigenschaft angeben. Weitere Informationen finden Sie unter "Standard".
Verhalten
Zugriffsebene. Innerhalb einer Klasse können Sie jedes Mitglied mit einer eigenen Zugriffsebene deklarieren. Klassenmember werden standardmäßig für den öffentlichen Zugriff verwendet, mit Ausnahme von Variablen und Konstanten, die standardmäßig auf "Privater Zugriff" festgelegt sind. Wenn eine Klasse mehr eingeschränkten Zugriff hat als eines ihrer Member, hat die Klassenzugriffsebene Vorrang.
Bereich. Eine Klasse befindet sich im Gesamten des zugehörigen Namespaces, der Klasse, der Struktur oder des Moduls.
Der Bereich jedes Klassenelements ist die gesamte Klasse.
Lebensdauer. Visual Basic unterstützt keine statischen Klassen. Das funktionale Äquivalent einer statischen Klasse wird von einem Modul bereitgestellt. Weitere Informationen finden Sie unter Module-Anweisung.
Klassenmber haben Lebensdauern, je nachdem, wie und wo sie deklariert werden. Weitere Informationen finden Sie unter "Lebensdauer" in Visual Basic.
Qualifikation. Code außerhalb einer Klasse muss den Namen eines Mitglieds mit dem Namen dieser Klasse qualifizieren.
Wenn Code in einer geschachtelten Klasse einen nicht qualifizierten Verweis auf ein Programmierelement macht, sucht Visual Basic zuerst in der geschachtelten Klasse nach dem Element, dann in seiner enthaltenden Klasse usw. auf das äußerste enthaltende Element.
Klassen und Module
Diese Elemente haben viele Ähnlichkeiten, aber es gibt auch einige wichtige Unterschiede.
Terminologie. In früheren Versionen von Visual Basic werden zwei Typen von Modulen erkannt: Klassenmodule (CLS-Dateien) und Standardmodule (BAS-Dateien). Die aktuelle Version ruft diese Klassen bzw. Module auf.
Freigegebene Mitglieder. Sie können steuern, ob ein Mitglied einer Klasse ein freigegebenes oder Instanzmitglied ist.
Objektausrichtung. Klassen sind objektorientiert, aber Module sind nicht. Sie können eine oder mehrere Instanzen einer Klasse erstellen. Weitere Informationen finden Sie unter "Objekte und Klassen".
Beispiel
Im folgenden Beispiel wird eine Class Anweisung verwendet, um eine Klasse und mehrere Member zu definieren.
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