4. Von Eigenschaften, Methoden
4.1 Eigenschaften In Klassen können
Eigenschaften definiert werden. Eine Eigenschaft ist eine Variable die direkt mit
dem Objekt der Klasse verbunden ist. Eine Eigenschaft können Sie erstellen,
indem Sie eine öffentliche Variable in eine Klasse einfügen.
Module Modul1
Sub Main
Dim oKlasse1 As New
clsPerson
Dim oKlasse2 As New
clsPerson
oKlasse1.cVorname
= "Gerhard_1"
oKlasse1.cNachname =
"Ahrens_1"
oKlasse2.cVorname
= "Gerhard_2"
oKlasse1.cNachname =
"Ahrens_2"
End Sub
End Module
Namespace
nsPerson
#Region "Klasse Person"
Public cVorname As String
Public cNachname As String
Public Class
clsPerson
...
End Class
#End Region
In dem Beispiel wurden zwei
Variablen oKlasse1 und oKlasse2 deklariert und die dazu gehörigen Instanzen
erzeugt. Anschließend wird über die Variable cVorname und cNachname zwei als Eigenschaft der Klasse
hinzugefügt. Alle Variablen, die sich auf das Objekt beziehen können auf die
Eigenschaften zugreifen. Da jedes Objekt seine eigene Instanz hat und einem
eigenen Speicherbereich zugeordnet ist, werden die Eigenschaftswerte unabhängig
gespeichert.
Eine weitere Möglichkeit für
das Lesen und Setzen von Eigenschaftswerte ist die Property-Methode. Über die Befehle Set und Get
können Eigenschaftswerte gesetzt oder gelesen werden.
Namespace
nsPerson
#Region "Klasse Person"
Private cVorname As String
Private cNachname As String
Public Class clsPerson
Public Property Vorname() As
String
Get
Return cVorname
End Get
Set(ByVal Value As String)
cVorname = Value
End Set
End Property
Public Property Nachname() As String
Get
Return
cNachname
End Get
Set(ByVal Value As
String)
cNachname
= Value
End Set
End Property
...
End Class
#End Region
Eigenschaften können zum
Beispiel auch nur lesend festgelegt werden:
Private cNachname As
String
ReadOnly
Property Nachname() As String
Get
Return cNachname
End Get
End Property
Erzeugen von
Standardeigenschaften
Die Standardeigenschaft
einer Klasse wird nicht explizit aufgeführt um diese ansprechen zu können. Wird
einem Objekt ein Wert zugewiesen, ohne das eine Eigenschaft angegeben wurde,
bezieht sich diese automatisch auf die Standardeingenschaft. Unter VB6 wurden
diese umständlich über Attribute angegeben. Unter VB.Net gibt es hierfür ein Default-Schlüsselwort, das aber bestimmten
Einschränkungen unterliegt: Bei der Eigenschaft muss es sich um Array handeln.
Der Property-Prozedure muss immer mindestens ein Argument übergeben werden.
Public Class Class1
Private nZahl As Integer =
{1,2,3}
Default ReadOnly Property
Zahl(ByVal i As Integer) As Integer
Get
Return nZahl(i)
End Get
End Property
End Class
Diese Vorgehensweise macht
den Umgang mit Standardeingenschaft unflexibel und hat unter VB.Net nur noch
wenig Bedeutung.
Methoden
Klassen können nicht nur
Eigenschaften haben, sondern auch mit Verhaltensweisen oder Aktionen verbunden
sein. Diese Art von Implementierung wird als Methoden beschrieben und
ermöglichen einer Klasse zusätzlich zu den Eigenschaften festgelegten
Informationen noch ein bestimmtes Verhalten zu speichern. Methoden sind
Prozeduren oder Funktionen und unterscheiden sich nicht von anderen
Prozeduren/Funktionen.
- Private
- Friend
- Public
- Protected
Wird eine Methode mit Private deklariert, so steht diese nur
innerhalb der Klasse zur Verfügung und kann von außen nicht benutzt werden.
Methoden die mit Friend deklariert können nur im aktuellen
Projekt, aber nicht von einem fremden Projekt angesprochen werden. Die
Deklaration Public kann von jedem Projekt aus
angesprochen werden. Diese werden als öffentlich bezeichnet. Der
Gültigkeitsbereich Protected bedeutet, dass das Mietglied nur in
derjenige Klasse zur Verfügung steht, von der die Klasse abgeleitet wurde, aber
nicht in anderen Klassen oder außerhalb des Projektes.
Module Modul1
Sub Main
Dim oKlasse1 As New
clsPerson
Dim cVar As String
oKlasse1.Methode1
cVar =
oKlasse1.Methode2()
End Sub
End Module
Public Class Class1
Public Sub Methode1()
...
End Sub
Public Function
Methode2() As String
Return
"Methode2"
End Function
End Class
Methoden können als
Prozeduren Sub oder Funktionen Function realisiert werden.
Der Konstruktor -
New()
Der Konstruktor ist eine
Prozedur mit dem festen Namen New(), die mit der Instanzierung einer Klasse
aufgerufen wird. Dieser Prozedur können beliebige Parameter übergeben werden.
Auch die New()-Prozedur kann überladen werden. Das bedeutet, das in einer
Klasse mehrere New() Prozedure vorhanden sein können, die sich durch die Anzahl
und Datentyp der Parameter unterscheiden.
Public Sub New()
'Ohne Parameter
End Sub
Überladen des Konstruktor Ein
Kontruktor ist eine spezielle Methode New(). Diese
kann wie alle Methoden (falls diese es erlauben)
überladen werden. Hierzu wird aber nicht der
Overrides-Befehl
benötigt. Die Siganturen beider Methoden müssen
unterschiedlich sein.
Public Sub New(ByVal
par_name As String, _
ByVal par_vname As
String, _
ByVal par_gebtag
As Date)
pName = par_name
pVorname = par_vname
pGeburtstag = par_gebtag
End Sub
|