Bauinformatik Teil 1 - Baustatik-Info-Server
Bauinformatik Teil 1 - Baustatik-Info-Server
Bauinformatik Teil 1 - Baustatik-Info-Server
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Seite 40 <strong>Bauinformatik</strong> - <strong>Teil</strong> 1 - Übungsskript / 2011<br />
9 VBA-Objekte<br />
Objekte oder Klassen im Sinne der OOP (objektorientierten Programmierung) werden in VBA<br />
mit Klassenmodul bezeichnet. Die Klassenbestandteile (siehe UML in Abschnitt C) bestehen<br />
aus den folgenden Komponenten.<br />
• Die Bezeichnung des Klassenmoduls ist die Klassenbezeichnung.<br />
• Globale Variablen eines Klassenmoduls sind die Klassenattribute.<br />
• Die Funktionen und Programme in einem Klassenmodul sind die Methoden der Klasse.<br />
Auf alle Mechanismen der Vererbung von Klassen (Generalisierung, Polymorphismus), die in<br />
den meisten Programmiersprachen der OOP implementiert werden, wird in VBA aus Sicherheitsgründen<br />
verzichtet.<br />
9.1 Konstruktor und Destruktor<br />
Jeder Klassenmodul hat die folgenden Methoden. 11<br />
• Der Konstruktor Class Initialize<br />
Diese Methode wird aufgerufen, wenn eine Instanz des Klassenmoduls mit dem new-<br />
Operator (set s = new Stab) erzeugt wird. Im Beispiel wird das Objekt Stab initialisiert.<br />
Es werden Fläche und E-Modul vorbelegt. Es werden die Instanzen der Knoten-<br />
Klassenmodul für die Stabenden erzeugt.<br />
Private Sub Class_Initialize()<br />
Set Ka = new Knoten<br />
Set Kb = new Knoten<br />
Fl = 0#<br />
Em = 210000#<br />
End Sub<br />
• Der Destruktor Class Terminate<br />
Wenn eine Instanz eines Klassenmoduls zerstört wird, d.h. aus dem Speicher entfernt<br />
wird, wird zunächst diese Methode aufgerufen, um dem Programm die automatisierte<br />
Möglichkeit zu bieten, Aufräumarbeiten auszuführen. Das Zerstören einer Instanz erfolgt<br />
mit dem nothing-Operator (set s = nothing).<br />
Im nachfolgenden Beispiel werden vor dem Entfernen eines Stab-Objekts dessen beide<br />
Knoten-Instanzen entfernt. 12<br />
Private Sub Class_Terminate()<br />
Set Ka = nothing<br />
Set Kb = nothing<br />
End Sub<br />
11 Die Beispiele dieses Abschnitts beziehen sich auf die Objekte Knoten und Stab des Abschnitts 9.4).<br />
12 Da in VBA nur dann ein Objekt vernichtet wird, wenn alle Verweise auf nothing gesetzt werden, können alle<br />
Knoten-Instanzen durch den dargestellten Destruktor vernichtet werden.<br />
E. Baeck