Overzicht: Klassen definiëren (Visual Basic)
In dit scenario ziet u hoe u klassen definieert, die u vervolgens kunt gebruiken om objecten te maken. U ziet ook hoe u eigenschappen en methoden toevoegt aan de nieuwe klasse en laat zien hoe u een object initialiseert.
Notitie
Mogelijk worden op uw computer verschillende namen of locaties weergegeven voor sommige elementen van de Visual Studio-gebruikersinterface in de volgende instructies. De Visual Studio-editie die u hebt en de instellingen die u gebruikt, bepalen deze elementen. Zie Personalizing the IDE (Personalizing the IDE) voor meer informatie.
Een klasse definiëren
Maak een project door in het menu Bestand op Nieuw project te klikken. Het dialoogvenster Nieuw project wordt weergegeven.
Selecteer Windows-toepassing in de lijst met Visual Basic-projectsjablonen om het nieuwe project weer te geven.
Voeg een nieuwe klasse toe aan het project door te klikken op Klasse toevoegen in het menu Project . Het dialoogvenster Nieuw item toevoegen wordt weergegeven.
Selecteer de klassesjabloon .
Geef de nieuwe klasse
UserNameInfo.vb
een naam en klik vervolgens op Toevoegen om de code voor de nieuwe klasse weer te geven.Public Class UserNameInfo End Class
Notitie
U kunt Visual Basic Code Editor gebruiken om een klasse toe te voegen aan uw opstartformulier door het
Class
trefwoord te typen, gevolgd door de naam van de nieuwe klasse. De Code-editor biedt een bijbehorendeEnd Class
instructie voor u.Definieer een privéveld voor de klasse door de volgende code toe te voegen tussen de
Class
enEnd Class
instructies:Private userNameValue As String
Het veld declareren als
Private
betekent dat het alleen binnen de klasse kan worden gebruikt. U kunt velden van buiten een klasse beschikbaar maken met behulp van toegangsaanpassingen, zoalsPublic
die meer toegang bieden. Zie Access-niveaus in Visual Basic voor meer informatie.Definieer een eigenschap voor de klasse door de volgende code toe te voegen:
Public Property UserName() As String Get ' Gets the property value. Return userNameValue End Get Set(ByVal Value As String) ' Sets the property value. userNameValue = Value End Set End Property
Definieer een methode voor de klasse door de volgende code toe te voegen:
Public Sub Capitalize() ' Capitalize the value of the property. userNameValue = UCase(userNameValue) End Sub
Definieer een geparameteriseerde constructor voor de nieuwe klasse door een procedure met de naam
Sub New
toe te voegen:Public Sub New(ByVal UserName As String) ' Set the property value. Me.UserName = UserName End Sub
De
Sub New
constructor wordt automatisch aangeroepen wanneer een object op basis van deze klasse wordt gemaakt. Met deze constructor wordt de waarde ingesteld van het veld dat de gebruikersnaam bevat.
Een knop maken om de klas te testen
Wijzig het opstartformulier in de ontwerpmodus door met de rechtermuisknop op de naam ervan te klikken in Solution Explorer en vervolgens op Weergaveontwerper te klikken. Standaard heet het opstartformulier voor Windows-toepassingsprojecten Form1.vb. Het hoofdformulier wordt vervolgens weergegeven.
Voeg een knop toe aan het hoofdformulier en dubbelklik erop om de code voor de
Button1_Click
gebeurtenis-handler weer te geven. Voeg de volgende code toe om de testprocedure aan te roepen:' Create an instance of the class. Dim user As New UserNameInfo("Moore, Bobby") ' Capitalize the value of the property. user.Capitalize() ' Display the value of the property. MsgBox("The original UserName is: " & user.UserName) ' Change the value of the property. user.UserName = "Worden, Joe" ' Redisplay the value of the property. MsgBox("The new UserName is: " & user.UserName)
Uw toepassing uitvoeren
Voer uw toepassing uit door op F5 te drukken. Klik op de knop op het formulier om de testprocedure aan te roepen. Er wordt een bericht weergegeven waarin staat dat het origineel
UserName
'MOORE, BOBBY' is, omdat de procedure deCapitalize
methode van het object wordt genoemd.Klik op OK om het berichtvak te sluiten. De
Button1 Click
procedure wijzigt de waarde van deUserName
eigenschap en geeft een bericht weer waarin staat dat de nieuwe waardeUserName
'Worden, Joe' is.