Konstruktor
Begriffserklärung + Beispiel
Dim today As New CalenderDate()
Ein Konstruktor ist eine Methode innerhalb der Klasse, die ausgeführt wird, wenn ein Objekt der Klasse erstellt wird.
In obigen Ausdruck ist das Schlüsselwort >>New<< zu sehen. Es scheint sich hierbei um einen Methodenaufruf ohne Argumente zu handeln, und genau das ist es auch!
Es handelt sich nämlich um einen Aufruf des >>Standardkonstruktors<< von CalendarDate. Jede Klasse verfügt über einen Standardkonstruktor, ob dieser nun explizit definieren wurde oder nicht. Indem in der Klasse CalendarDate explizit einen Standardkonstruktor definieren, können Sie sicherstellen, dass das CalendarDate-Objekt immer einen gültigen Datumswert enthält.
Es ist darüber hinaus möglich, Konstruktoren mit einem oder mehreren Argumenten zu definieren. Es könnte in der Klasse CalendarDate beispielsweise ein Konstruktor mit drei Argumenten definiert werden, um ein CalendarDate-Objekt mit einem
bestimmten Datumswert zu initialisieren. Mithilfe eines solchen Konstruktors könnte ein CalendarDate-Objekt auf die folgende Weise erstellt werden
Dim birthdate As New CalendarDate(1978, 9, 2)
Innerhalb der Klasse sehen Konstruktoren immer wie Subroutinen mit den Namen New aus. Nachfolgend sehen Sie ein einfaches Beispiel für einen Konstruktor mit Datumsargumenten
Dim yr, mn, dy As Integer
Sub New(ByVal yr As Integer, ByVal mn As Integer, ByVal dy As Integer)
Me.yr = yr
Me.mn = mn
Me.dy = dy
End Sub
Von der in den Eigenschaften implementierten Fehlerprüfung wird jedoch kein
Gebrauch gemacht. Ein besserer Ansatz für den Konstruktor besteht darin,
anstelle der Felder Eigenschaften einzustellen
Property Year() As Integer
Get
Return yr
End Get
Set(ByVal Value As Integer)
Throw New ArgumentOutOfRangeException("Year")
End Set
End Property
Sub New(ByVal yr As Integer)
Year = yr
End Sub
Tatsächlich können Sie noch mehr tun. Sie können im Konstruktor
Konsistenzprüfungen für die drei Werte durchführen.