Class-Anweisung (Visual Basic)
Deklariert den Namen einer Klasse und führt die Definitionen der Variablen, Eigenschaften, Ereignisse und Prozeduren ein, die die Klasse enthält.
[ <attributelist> ] [ accessmodifier ] [ Shadows ] [ MustInherit | NotInheritable ] [ Partial ] _
Class name [ ( Of typelist ) ]
[ Inherits classname ]
[ Implements interfacenames ]
[ statements ]
End Class
Teile
Begriff |
Definition |
attributelist |
Optional. Siehe Attributliste. |
accessmodifier |
Optional. Einer der folgenden Werte ist möglich: Weitere Informationen finden Sie unter Zugriffsebenen in Visual Basic. |
Shadows |
Optional. Siehe Shadows. |
MustInherit |
Optional. Weitere Informationen finden Sie unter MustInherit (Visual Basic). |
NotInheritable |
Optional. Weitere Informationen finden Sie unter NotInheritable (Visual Basic). |
Partial |
Optional. Gibt eine partielle Definition der Klasse an. Weitere Informationen finden Sie unter Partial (Visual Basic). |
name |
Erforderlich. Name dieser Klasse. Siehe Namen deklarierter Elemente (Visual Basic). |
Of |
Optional. Gibt an, dass dies eine generische Klasse ist. |
typelist |
Erforderlich, wenn Sie das Of-Schlüsselwort verwenden. Liste mit Typparametern für diese Klasse. Siehe Typliste. |
Inherits |
Optional. Gibt an, dass diese Klasse die Member einer anderen Klasse erbt. Weitere Informationen finden Sie unter Inherits-Anweisung. |
classname |
Erforderlich, wenn Sie die Inherits-Anweisung verwenden. Der Name der Klasse, von der diese Klasse abgeleitet wird. |
Implements |
Optional. Gibt an, dass diese Klasse die Member einer oder mehrerer Schnittstellen implementiert. Weitere Informationen finden Sie unter Implements-Anweisung. |
interfacenames |
Erforderlich, wenn Sie die Implements-Anweisung verwenden. Die Namen der von dieser Klasse implementierten Schnittstellen. |
statements |
Optional. Anweisungen, die die Member dieser Klasse definieren. |
End Class |
Erforderlich. Beendet die Class-Definition. |
Hinweise
Eine Class-Anweisung definiert einen neuen Datentyp. Eine Klasse ist ein wesentlicher Baustein der objektorientierten Programmierung (OOP). Weitere Informationen finden Sie unter Objekte und Klassen in Visual Basic.
Class kann nur auf Namespace- oder Modulebene verwendet werden. 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 weder eine Prozedur noch ein Block sein kann. Weitere Informationen finden Sie unter Deklarationskontexte und Standardzugriffsebenen (Visual Basic).
Die Lebensdauer jeder Instanz einer Klasse ist von der Lebensdauer aller anderen Instanzen unabhängig. Diese Lebensdauer beginnt, wenn die Instanz durch eine Operator New (Visual Basic)-Klausel oder eine Funktion, z. B. CreateObject, erstellt wird. Sie endet, wenn alle Variablen, die auf die Instanz zeigen, auf Nothing (Visual Basic) oder auf Instanzen anderer Klassen festgelegt wurden.
Der Standardzugriff von Klassen ist Friend (Visual Basic). Sie können ihre Zugriffsebenen mit den Zugriffsmodifizierern anpassen. Weitere Informationen finden Sie unter Zugriffsebenen in Visual Basic.
Regeln
Schachtelung. Sie können eine Klasse in einer anderen Klasse definieren. Die äußere Klasse wird als enthaltende Klasse und die innere Klasse als geschachtelte Klasse bezeichnet.
Vererbung. Wenn die Klasse die Inherits-Anweisung verwendet, können Sie nur eine einzige Basisklasse oder Basisschnittstelle 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 Public-Klasse nicht von einer Friend-Klasse erben.
Eine Klasse kann nicht von einer Klasse erben, die in ihr geschachtelt ist.
Implementierung. Wenn die Klasse die Implements-Anweisung verwendet, müssen Sie alle Member implementieren, die durch jede in interfacenames angegebene Schnittstelle definiert sind. Eine Ausnahme hiervon ist die erneute Implementierung eines Basisklassenmembers. Weitere Informationen finden Sie in Implements-Klausel (Visual Basic) unter "Erneute Implementierung".
Standardeigenschaft. Für eine Klasse kann höchstens eine Eigenschaft als Standardeigenschaft angegeben werden. Weitere Informationen finden Sie unter Default (Visual Basic).
Verhalten
Zugriffsebene. In einer Klasse können Sie jeden Member mit einer eigenen Zugriffsebene deklarieren. Der Standardzugriff für Klassen ist Public (Visual Basic), mit Ausnahme von Variablen und Konstanten, deren Standardzugriff Private (Visual Basic) ist. Wenn eine Klasse eingeschränkteren Zugriff als einer ihrer Member aufweist, hat die Zugriffsebene der Klasse Vorrang.
Gültigkeitsbereich. Der Gültigkeitsbereich einer Klasse umfasst den Namespace, die Klasse, Struktur oder das Modul, in dem bzw. der sich die Klasse befindet.
Der Gültigkeitsbereich jedes Klassenmembers umfasst die gesamte Klasse.
Lebensdauer. Visual Basic unterstützt keine statischen Klassen. Die funktionale Entsprechung einer statischen Klasse wird von einem Modul bereitgestellt. Weitere Informationen finden Sie unter Module-Anweisung.
Die Lebensdauer von Klassenmembern hängt davon ab, wie und wo sie deklariert werden. Weitere Informationen finden Sie unter Lebensdauer in Visual Basic.
Qualifikation. In Code außerhalb einer Klasse muss der Name eines Members mit dem Namen dieser Klasse qualifiziert werden.
Wenn Code in einer geschachtelten Klasse einen nicht qualifizierten Verweis auf ein Programmierelement enthält, sucht Visual Basic das Element zunächst in der geschachtelten Klasse, anschließend in der enthaltenden Klasse und so weiter bis zum äußersten enthaltenden Element.
Klassen und Module
Diese Elemente weisen viele Ähnlichkeiten auf, jedoch bestehen auch einige wichtige Unterschiede.
Begriffe. In älteren Versionen von Visual Basic werden zwei Typen von Modulen erkannt: Klassenmodule (CLS-Dateien) und Standardmodule (BAS-Dateien). In der aktuellen Version werden diese als Klassen bzw. Module bezeichnet.
Freigegebene Member. Sie können steuern, ob ein Member einer Klasse ein freigegebener Member oder ein Instanzmember ist.
Objektorientierung. Klassen sind objektorientiert, Module jedoch nicht. Sie können eine oder mehrere Instanzen einer Klasse erstellen. Weitere Informationen finden Sie unter Objekte und Klassen in Visual Basic.
Beispiel
Im folgenden Beispiel wird eine Class-Anweisung verwendet, um eine Klasse und mehrere Member zu definieren.
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
Siehe auch
Aufgaben
Gewusst wie: Verwenden einer generischen Klasse (Visual Basic)
Referenz
Interface-Anweisung (Visual Basic)
Konzepte
Strukturen und Klassen (Visual Basic)
Objektlebensdauer: Erstellen und Zerstören von Objekten (Visual Basic)
Generische Typen in Visual Basic (Visual Basic)