Osztályutasítás (Visual Basic)
Deklarálja az osztály nevét, és bevezeti az osztály változóinak, tulajdonságainak, eseményeinek és eljárásainak definícióját.
Syntax
[ <attributelist> ] [ accessmodifier ] [ Shadows ] [ MustInherit | NotInheritable ] [ Partial ] _
Class name [ ( Of typelist ) ]
[ Inherits classname ]
[ Implements interfacenames ]
[ statements ]
End Class
Részek
Időszak | Definíció |
---|---|
attributelist |
Opcionális. Lásd: Attribútumlista. |
accessmodifier |
Opcionális. A következők egyike lehet: - Nyilvános - Védett - Barátom - Privát - Védett barát - Privát védelem Lásd a Visual Basic hozzáférési szintjeinek megtekintését. |
Shadows |
Opcionális. Lásd: Árnyékok. |
MustInherit |
Opcionális. Lásd: MustInherit. |
NotInheritable |
Opcionális. Lásd: NotInheritable. |
Partial |
Opcionális. Az osztály részleges definícióját jelzi. Lásd: Részleges. |
name |
Szükséges. Az osztály neve. Lásd: Deklarált elemnevek. |
Of |
Opcionális. Azt adja meg, hogy ez egy általános osztály. |
typelist |
Az Of kulcsszó használata esetén kötelező megadni. Az osztály típusparamétereinek listája. Lásd: Típuslista. |
Inherits |
Opcionális. Azt jelzi, hogy ez az osztály egy másik osztály tagjait örökli. Lásd: Öröklési utasítás. |
classname |
Az utasítás használata Inherits esetén kötelező megadni. Annak az osztálynak a neve, amelyből az osztály származik. |
Implements |
Opcionális. Azt jelzi, hogy ez az osztály egy vagy több interfész tagjait valósítja meg. Lásd: Implements Utasítás. |
interfacenames |
Az utasítás használata Implements esetén kötelező megadni. Az osztály által implementálva lévő felületek nevei. |
statements |
Opcionális. Az osztály tagjait meghatározó utasítások. |
End Class |
Szükséges. Leállítja a definíciót Class . |
Megjegyzések
Az Class
utasítás új adattípust határoz meg. Az osztály az objektumorientált programozás (OOP) alapvető építőeleme. További információ: Objektumok és osztályok.
Csak névtér- vagy modulszinten használható Class
. Ez azt jelenti, hogy az osztály deklarációs környezetének forrásfájlnak, névtérnek, osztálynak, struktúrának, modulnak vagy interfésznek kell lennie, és nem lehet eljárás vagy blokk. További információ: Deklarációs környezetek és alapértelmezett hozzáférési szintek.
Az osztály minden példánya az összes többi példánytól független élettartamú. Ez az élettartam akkor kezdődik, amikor egy Új operátor záradék vagy egy olyan függvény hozza létre, mint a CreateObject. Akkor ér véget, ha a példányra mutató összes változó a Semmi vagy más osztályok példányai értékre van állítva.
Az osztályok alapértelmezés szerint a Barát hozzáféréshez lesznek kapcsolva. A hozzáférési szinteket a hozzáférési módosítókkal módosíthatja. További információ: Hozzáférési szintek a Visual Basicben.
Szabályok
Fészkelő. Definiálhat egy osztályt egy másikon belül. A külső osztályt tartalmazó osztálynak, a belső osztályt pedig beágyazott osztálynak nevezzük.
Öröklési. Ha az osztály az Öröklési utasítást használja, csak egy alaposztályt vagy felületet adhat meg. Egy osztály nem örökölhet egynél több elemtől.
Egy osztály nem örökölhet egy szigorúbb hozzáférési szinttel rendelkező másik osztálytól. Egy osztály például
Public
nem örökölhet egyFriend
osztálytól.Az osztály nem örökölhető a benne beágyazott osztálytól.
Végrehajtása. Ha az osztály az Implements Utasítást használja, minden, a megadott felületen meghatározott tagot
interfacenames
implementálnia kell. Ez alól kivételt képez egy alaposztálytag újratelepítése. További információ: "Újraimplementáció" a Implementsben.Alapértelmezett tulajdonság. Egy osztály legfeljebb egy tulajdonságot adhat meg alapértelmezett tulajdonságként. További információ: Alapértelmezett.
Működés
Hozzáférési szint. Egy osztályon belül minden tagot saját hozzáférési szinttel deklarálhat. Az osztálytagok alapértelmezés szerint nyilvános hozzáféréssel érhetők el, kivéve a változókat és állandókat, amelyek alapértelmezés szerint privát hozzáféréssel érhetők el. Ha egy osztály több korlátozott hozzáféréssel rendelkezik, mint az egyik tagja, az osztály hozzáférési szintje elsőbbséget élvez.
Hatály. Egy osztály hatókörben van, amely tartalmazza a névteret, az osztályt, a struktúrát vagy a modult.
Minden osztálytag hatóköre a teljes osztály.
Élettartam. A Visual Basic nem támogatja a statikus osztályokat. A statikus osztály funkcionális megfelelője egy modul. További információ: Modulutasítás.
Az osztálytagok élettartama attól függ, hogyan és hol deklarálják őket. További információ: Élettartam a Visual Basicben.
Képesítés. Az osztályon kívüli kódnak az adott osztály nevével rendelkező tag nevét kell minősítenie.
Ha a beágyazott osztályban lévő kód nem minősített hivatkozást ad egy programozási elemre, a Visual Basic először a beágyazott osztályban, majd a benne lévő osztályban keresi az elemet, és így tovább a legkülső elemet.
Osztályok és modulok
Ezek az elemek sok hasonlóságot mutatnak, de van néhány fontos különbség is.
Terminológia. A Visual Basic korábbi verziói kétféle modult ismernek fel: osztálymodulokat (.cls-fájlokat) és standard modulokat (.bas-fájlokat). Az aktuális verzió ezeket az osztályokat és modulokat hívja meg.
Megosztott tagok. Szabályozhatja, hogy egy osztály egy tagja megosztott vagy példánytag-e.
Objektum tájolása. Az osztályok objektumorientáltak, de a modulok nem. Létrehozhat egy vagy több osztálypéldányt. További információ: Objektumok és osztályok.
Példa
Az alábbi példa egy utasítással Class
határoz meg egy osztályt és több tagot.
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