informationsverarbeitung im bauwesen - ... · pdf filewas unterscheidet oop von...

22
Informationsverarbeitung im Bauwesen 1 Informationsverarbeitung im Bauwesen Markus Uhlmann 12

Upload: vobao

Post on 07-Mar-2018

227 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Informationsverarbeitung im Bauwesen -   ... · PDF fileWas unterscheidet OOP von “traditionellen” ... Einführung in Excel/VBA VBA 4. Struktur von (VBA) Programmen

Informationsverarbeitung im Bauwesen

1

Informationsverarbeitung im Bauwesen

Markus Uhlmann

12

Page 2: Informationsverarbeitung im Bauwesen -   ... · PDF fileWas unterscheidet OOP von “traditionellen” ... Einführung in Excel/VBA VBA 4. Struktur von (VBA) Programmen

Informationsverarbeitung im Bauwesen

2

Zusammenfassung der 11. Vorlesung

• Objektorientierte Programmierung (OOP)

• Wozu eigentlich? Was unterscheidet OOP von “traditionellen”

Techniken?

• Verwendung von vordefinierten Objekten

• Beispiele:• Collection Objekt• Range Objekt• Polygon

Page 3: Informationsverarbeitung im Bauwesen -   ... · PDF fileWas unterscheidet OOP von “traditionellen” ... Einführung in Excel/VBA VBA 4. Struktur von (VBA) Programmen

Informationsverarbeitung im Bauwesen

3

1. Informationsdarstellung & -verarbeitung Grundlagen2. Betriebssysteme, Programmiersprachen *3. Einführung in Excel/VBA VBA4. Struktur von (VBA) Programmen *5. Logische Elemente I * 6. Logische Elemente II *7. Beispielprogramm (Dynamik starrer Körper) *8. Datentypen, Eingabe/Ausgabe *9. Datenfelder *10. Benutzerdefinierte Datentypen *11. Objektorientierte Programmiertechniken I *12. Objektorientierte Programmiertechniken II *13. Matlab I Matlab14. Matlab II *

Inhalt / Planung der Vorlesung

Page 4: Informationsverarbeitung im Bauwesen -   ... · PDF fileWas unterscheidet OOP von “traditionellen” ... Einführung in Excel/VBA VBA 4. Struktur von (VBA) Programmen

Informationsverarbeitung im Bauwesen

4

Inhalt der heutigen Vorlesung

• Objektorientierte Programmierung II:

Benutzerdefinierte Klassen

• Definition einfacher Klassen

• “Property” Prozeduren

• Ereignisse bei Initialisierung/Beendigung eines Objektes

• Schnittstellen

• Beispiele:• Klasse für Kreisobjekt• Fahrzeugklasse

Page 5: Informationsverarbeitung im Bauwesen -   ... · PDF fileWas unterscheidet OOP von “traditionellen” ... Einführung in Excel/VBA VBA 4. Struktur von (VBA) Programmen

Informationsverarbeitung im Bauwesen

5

Erzeugen eigener Klassen

VBA: Klassen werden in Klassenmodulen definiert

Pro Klassenmodul wird eine Klasse beschrieben Modulname = Klassenname

Page 6: Informationsverarbeitung im Bauwesen -   ... · PDF fileWas unterscheidet OOP von “traditionellen” ... Einführung in Excel/VBA VBA 4. Struktur von (VBA) Programmen

Informationsverarbeitung im Bauwesen

6

Definition von Eigenschaften

Öffentliche Eigenschaften (nicht empfohlen)

Definition von „Public“ Variablen innerhalb Klassenmodul

Bsp.: [in Klassenmodul „Auto“]Public Farbe As Integer

Public Vel As Single

[in Code-Modul]Sub Test()

Dim Auto1 As New Auto

Auto1.Farbe=5

Auto1.Vel=35.0

End Sub

Analog zu benutzerdefinierten Datentypen

Page 7: Informationsverarbeitung im Bauwesen -   ... · PDF fileWas unterscheidet OOP von “traditionellen” ... Einführung in Excel/VBA VBA 4. Struktur von (VBA) Programmen

Informationsverarbeitung im Bauwesen

7

Definition von Methoden

Öffentliche Methoden

Definition von „Public“ Prozeduren innerhalb

Klassenmodul

Bsp.: [in Klassenmodul „Auto“]Public Sub Beschleunigen(dv as Single)

Vel = Vel + dv

End Sub

[in Code-Modul]Sub Test()

Dim Auto1 As New Auto

Auto1.Beschleunigen 5.0

End Sub

Page 8: Informationsverarbeitung im Bauwesen -   ... · PDF fileWas unterscheidet OOP von “traditionellen” ... Einführung in Excel/VBA VBA 4. Struktur von (VBA) Programmen

Informationsverarbeitung im Bauwesen

8

Bsp.: Definition einfacher Klassen

(Quelltext: VBA)

Page 9: Informationsverarbeitung im Bauwesen -   ... · PDF fileWas unterscheidet OOP von “traditionellen” ... Einführung in Excel/VBA VBA 4. Struktur von (VBA) Programmen

Informationsverarbeitung im Bauwesen

9

Datenkapselung

Öffentliche Eigenschaften sind unsicher

Verwendung von privaten Variablen Unsichtbar ausserhalb des ObjektesBsp.: Private pRadius As Single (in Klassenmodul)

Zugriff auf Eigenschaften durch „Property-Prozeduren“ Spezielle Prozeduren zum Abfragen und Ändern von

privaten Eigenschaften Inhalt der Prozedur: beliebiger Programmtext

Page 10: Informationsverarbeitung im Bauwesen -   ... · PDF fileWas unterscheidet OOP von “traditionellen” ... Einführung in Excel/VBA VBA 4. Struktur von (VBA) Programmen

Informationsverarbeitung im Bauwesen

10

Property Prozeduren

Zugriff auf Eigenschaften durch Property ProzedurenBsp.: [in Klassenmodul „Kreis“]Private pRadius As Single

Public Property Let Radius(Value as Single)

pRadius = Value

End Property

Aufruf wie normale Wertzuweisung: [in Code-Modul]

Dim circ1 As New Kreis

circ1.Radius = 3.5

Direkter Zugriff auf Eigenschaft pRadius nicht möglich

Nach außen nur Eigenschaft Radius sichtbar

Page 11: Informationsverarbeitung im Bauwesen -   ... · PDF fileWas unterscheidet OOP von “traditionellen” ... Einführung in Excel/VBA VBA 4. Struktur von (VBA) Programmen

Informationsverarbeitung im Bauwesen

11

Property Prozeduren (2)

Property Prozedur als „Filter“ für Objektdaten

Bsp.: [in Klassenmodul „Kreis“]

Private pRadius As Single

Public Property Let Radius(Value as Single)

If Value >= 0 Then

pRadius = Value

Else

`Fehlerbehandlung (negativer Radius)

Endif

End Property

Fehlerhafte Zuweisungen können durch Property Prozeduren verhindert werden

Page 12: Informationsverarbeitung im Bauwesen -   ... · PDF fileWas unterscheidet OOP von “traditionellen” ... Einführung in Excel/VBA VBA 4. Struktur von (VBA) Programmen

Informationsverarbeitung im Bauwesen

12

Property Let/Get Prozeduren

Property Let/Get Prozeduren – treten in Paaren auf

Syntax:

Property Let name([arglist,]value As type)

End Property

Property Get name [(arglist)] As type

End Property

Property Let -> Zuweisen eines Wertes (Set für Objekte)

Property Get -> Abfrage eines Wertes „Schreibgeschützte“ Eigenschaften: Let auslassen

Page 13: Informationsverarbeitung im Bauwesen -   ... · PDF fileWas unterscheidet OOP von “traditionellen” ... Einführung in Excel/VBA VBA 4. Struktur von (VBA) Programmen

Informationsverarbeitung im Bauwesen

13

Bsp.: Property Let/Get Prozeduren

(Quelltext: VBA)

Page 14: Informationsverarbeitung im Bauwesen -   ... · PDF fileWas unterscheidet OOP von “traditionellen” ... Einführung in Excel/VBA VBA 4. Struktur von (VBA) Programmen

Informationsverarbeitung im Bauwesen

14

Get: Berechnete Eigenschaft

Property Get Prozedur: Zugriff auf berechnete Werte

Im vorigen Beispiel wurde mit Get auf eine verborgene Eigenschaft zurückgegriffen

Statt dessen können innerhalb von Eigenschaftsprozeduren Werte durch Berechnungen ermittelt werden

Bsp.: eine Eigenschaft „Fläche“ eines Kreisobjektes benötigt keine spezielle verborgene Variable – die Information kann aus dem Radius berechnet werden

Page 15: Informationsverarbeitung im Bauwesen -   ... · PDF fileWas unterscheidet OOP von “traditionellen” ... Einführung in Excel/VBA VBA 4. Struktur von (VBA) Programmen

Informationsverarbeitung im Bauwesen

15

Bsp.: Berechnete Eigenschaft

(Quelltext: VBA)

Page 16: Informationsverarbeitung im Bauwesen -   ... · PDF fileWas unterscheidet OOP von “traditionellen” ... Einführung in Excel/VBA VBA 4. Struktur von (VBA) Programmen

Informationsverarbeitung im Bauwesen

16

Objekte & Ereignisse

„Initialize“ – Ereignis: wird durch Erzeugung eines

Objektes ausgelöst

Programmtext kann mit diesem Ereignis verbunden werden (z.B. setzen von Standardwerten)

Syntax: [in Klassenmodul]Private Sub Class_Initialize()

`Anweisungen werden bei Initialisierung

`ausgeführt

End Sub

Analog für „Terminate“ (Beendigung eines Objektes) Ähnlich C++ „Constructor“, „Destructor“

Page 17: Informationsverarbeitung im Bauwesen -   ... · PDF fileWas unterscheidet OOP von “traditionellen” ... Einführung in Excel/VBA VBA 4. Struktur von (VBA) Programmen

Informationsverarbeitung im Bauwesen

17

Bsp.: Initialize-Event

(Quelltext: VBA)

Page 18: Informationsverarbeitung im Bauwesen -   ... · PDF fileWas unterscheidet OOP von “traditionellen” ... Einführung in Excel/VBA VBA 4. Struktur von (VBA) Programmen

Informationsverarbeitung im Bauwesen

18

Klassen & Schnittstellen

Verschiedene Klassen -- gemeinsame Schnittstelle

Klassenmodule können als Schnittstelle fungieren:• Enthalten lediglich leere Prozeduren• Implementierung wird eigentlichen Klassen

überlassen• „abstrakte Klassen“• Eigenschaft „PublicNotCreatable“ setzen

Eigentliche Klassen verwenden Anweisung

„Implements Schnittstellenname“

• Sind verpflichtet die Prozeduren der Schnittstelle zu implementieren

Ermöglicht Standardisierung von polymorphem Verhalten

Page 19: Informationsverarbeitung im Bauwesen -   ... · PDF fileWas unterscheidet OOP von “traditionellen” ... Einführung in Excel/VBA VBA 4. Struktur von (VBA) Programmen

Informationsverarbeitung im Bauwesen

19

Bsp.: Klassen & Schnittstellen

(Quelltext: VBA)

Page 20: Informationsverarbeitung im Bauwesen -   ... · PDF fileWas unterscheidet OOP von “traditionellen” ... Einführung in Excel/VBA VBA 4. Struktur von (VBA) Programmen

Informationsverarbeitung im Bauwesen

20

Ausblick

Thema der nächsten Vorlesung: MATLAB

Page 21: Informationsverarbeitung im Bauwesen -   ... · PDF fileWas unterscheidet OOP von “traditionellen” ... Einführung in Excel/VBA VBA 4. Struktur von (VBA) Programmen

Informationsverarbeitung im Bauwesen

21

Campuslizenzen KIT

(LINK)

Page 22: Informationsverarbeitung im Bauwesen -   ... · PDF fileWas unterscheidet OOP von “traditionellen” ... Einführung in Excel/VBA VBA 4. Struktur von (VBA) Programmen

Informationsverarbeitung im Bauwesen

22

MATLAB im Softwareshop

(LINK)