Klassenmodul person

Transcrição

Klassenmodul person
Wiederholung
Objektorientierte Programmierung
Daten sind passiv (man kann sie nur lesen/schreiben).
Datentyp Record:
benutzerdefinierter Datentp zur Verwaltung logisch
zusammengehörender Daten verschiedener Typen
Operationen mit Daten durch Unterprogramme.
Entwurfsziel: Daten und passende Operationen verbinden.
Objekte sind Instanzen von Klassen
objektorientierte Programmierung:
◮ Klassen in VBA-Klassenmodulen
◮
◮
◮
Eigenschaften
Methoden
Objekte sind Instanzen von Klassen
Klassen
Lösung: Aus Daten werden Objekte.
Definition: ein Objekt besteht aus
◮
Attributen (Eigenschaften, Daten)
◮
Methoden (Unterprogramme: Prozeduren/Funktionen)
Beispiel: Klassenmodul person
Eine Klasse beschreibt gleichartige Objekte (gleiche Namen
und Typen für Eigenschaften und Methoden).
Datentyp für Objekte
Public vorname As String
Public name As String
Public geburtstag As Date
Objekte sind Instanzen von Klassen
Deklaration von Klassen in VBA:
Anlegen von Klassenmodulen (Einfügen - Klassenmodul)
Klassenmodul enthält Deklarationen für
◮
Eigenschaften
◮
Methoden (Prozeduren, Funktionen)
Public Sub gruss()
Dim s As String
s = "Hallo, ich bin " & vorname & " " & name
Debug.Print (s)
End Sub
Verwendung von Klassen
Deklaration eines Objektes (Instanzen eine Klasse)
Dim objekt As klasse
B: Dim student As person
Objekte werden zur Laufzeit des Programmes erzeugt.
set objekt = New klasse
B: set student = New person
durch New:
Neuer Speicherplatz wird reserviert
(entsprechend Deklarationen der Eigenschaften der Klasse)
Objektvariable enthält Speicherstelle
Objekte können nicht als Wertparameter übergeben werden.
Datenkapselung
Public Daten sind öffentlich,
Zugriff in allen Modulen der aktuellen
Arbeitsmappe möglich
Private Daten sind gekapselt
Zugriff nur innerhalb des Klassenmoduls möglich
außerhalb spezielle Zugriffsfunktionen notwendig
◮
Eigenschaften des Objektes (Instanz)
student.vorname
Zugriffsfunktionen (Properties):
Property Let pname (arg As Type)
Prozedur zum Zuweisen von Werten an Private
Eigenschaften
Property Get pname () As Type
Funktion zum Lesen der aktuellen Werte aus Private
Eigenschaften
◮
Methoden der Klasse
student.gruss()
B: Klasse person mit Datenkapselung
Zugriff auf
Zusammenfassung
objektorientierte Konzepte in VBA:
◮ Klassen
◮
◮
Eigenschaften
Methoden
deklariert in VBA-Klassenmodulen
◮
Objekte sind Instanzen von Klassen
◮
Datenkapselung