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