Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Objekt - Jargon Programmierung II Prof. Dr. Michael Löwe.

Ähnliche Präsentationen


Präsentation zum Thema: "Objekt - Jargon Programmierung II Prof. Dr. Michael Löwe."—  Präsentation transkript:

1 Objekt - Jargon Programmierung II Prof. Dr. Michael Löwe

2 Klassen und Objekte2 Inhalt Begriffe Objekterzeugung: New, Create etc. Das Undefinierte: Nil, Null, Nothing etc. Objektzuweisung: :=, Set...= etc. Das Clonen: clone, copy, etc. Objektvergleich: =, ==, Is etc. Das Objekt selbst: Me, myself, etc. Rekursive Klassen Collections

3 Klassen und Objekte3 Begriffe Instanzen zu Klassen(modulen) heißen Objekte. Die Variablen einer Klasse heißen auch Attribute. Die Prozeduren/Funktionen einer Klasse nennt man Methoden. Die öffentlichen Methoden bilden die Schnittstelle einer Klasse. Die Schnittstelle (ohne die implementierenden Rümpfe) nennt man auch Protokoll der Klasse. Den Aufruf einer Methode für ein Objekt nennt man auch Nachricht an das Objekt. Ein Objekt versteht eine Nachricht, wenn Sie zum Protokoll seiner Klasse gehört.

4 Klassen und Objekte4 Übung: Wahrheitswerte Definieren Sie eine Klasse MyBool mit folgender Schnittstelle (Initialisierung auf false): Class MyBool Public Function myNot As MyBool Public Function myAnd (b As MyBool) As MyBool Public Function myOr (b As MyBool) As MyBool Public Sub setTrue Public Sub setFalse End Class MyBool

5 Klassen und Objekte5 Objekterzeugung Variablendeklaration und Variablenbelegung: Dim i As Integer Dim b As MyBool b = New MyBool Name: i Wert: 0 Variablen-Assoziation Name: b Variablen-Assoziation Name: b Variablen-Assoziation V1:... V2:... Vn:... V1:... V2:... Vn:...

6 Klassen und Objekte6 Das Undefinierte Dim b as MyBool Set b = Nothing b.method() ist undefiniert Nothing kann nichts Nothing macht nichts Auf Nothing kann man nicht zugreifen Nothing ist die Verkörperung des NICHTS Name: b Variablen-Assoziation Nothing

7 Klassen und Objekte7 Objektzuweisung Zuweisungen an Variablen zu (elementaren) Typen: Dim x As Boolean[x: false] Dim y As Boolean[x: false, y: false] x = true[x: true, y: false] y = x[x: true, y: true] y = False[x: true, y: false] If x = y Then...[(x = y) false]

8 Klassen und Objekte8 Objektzuweisung Zuweisungen an Variablen zu Objekttypen: Dim x As MyBool Dim y As MyBool Set x = New MyBool Set y = New MyBool Call x.setTrue Set y = x Call y.setFalse If x Is y Then... Namen: Objekte: x x Nothing Namen: Objekte: x x Nothing y y Namen: Objekte: x x Nothing y y o1: false Namen: Objekte: x x Nothing y y o1: false o2: false Namen: Objekte: x x Nothing y y o1: true o2: false Namen: Objekte: x x Nothing y y o1: true o2: false Namen: Objekte: x x Nothing y y o1: false

9 Klassen und Objekte9 Das Clonen von Objekten Erweitern Sie die MyBool-Schnittstelle um: Public Function cloneMyBool As MyBool `Liefert als Wert eine Kopie von sich selbst Wie sieht das allgemeine Verfahren zum Kopieren von Objekten aus?

10 Klassen und Objekte10 Objekt-Wert-Zuweisungen Zuweisungen an Variablen zu Objekttypen: Dim x As MyBool Dim y As MyBool Set x = New MyBool Set y = New MyBool Call x.setTrue Set y = x.cloneMyBool Call y.setFalse If x Is y Then... Namen: Objekte: x x Nothing Namen: Objekte: x x Nothing y y Namen: Objekte: x x Nothing y y o1: false Namen: Objekte: x x Nothing y y o1: false o2: false Namen: Objekte: x x Nothing y y o1: true o2: false Namen: Objekte: x x Nothing y y o1: true o2: false o3: true Namen: Objekte: x x Nothing y y o1: true o3: false

11 Klassen und Objekte11 Objektvergleich Der Operator Is vergleicht, ob zwei Objekt-variablen dasselbe Objekt als Wert haben Der Operator Is vergleicht nicht, ob die zwei Objektwerte inhaltlich gleich sind. ¿Was ist richtig? 1. (x Is y) (x = y) 2. (x = y) (x Is y) Übungen: Ergänzen Sie die Schnittstelle von MyBool um die Gleichheit! Wie sieht das allgemeine Verfahren für den Test auf Gleichheit aus?

12 Klassen und Objekte12 Das Objekt selbst Nachrichten an sich selbst schicken call Me. aMethod (...) Set x = Me.aMethod (...) Sich selbst als Parameter übergeben call anObject.aMethod(..., me,...) Set x = anObject.aMethod(..., me,...)

13 Klassen und Objekte13 Rekursive Klassen Klassen, die Attribute mit ihrem eigenen Typ definieren Fast alle interessanten Datenstrukturen sind rekursiv: –Listen, Ströme, Stapel,.... –Bäume, Hierarchien,... –Arrays, Abbildungen, Dictionaries,... Übung: Realisieren Sie Ströme als rekursive Klasse! Class MyStream Private entry As Variant Private nextEntry As MyStream Public function isEmpty As Boolean Public function first As Variant Public sub append (x As Variant) Public sub removeFirst End Class MyStream

14 Klassen und Objekte14 Ganzheitliche Vertiefung Realisieren Sie optimierte Ströme, indem Sie sich das Ende merken: Class MyBetterStream Private start As MyStream Private end As MyStream.... (Protokoll wie gehabt).... End Class MyBetterStream

15 Klassen und Objekte15 Objektzuweisung Zuweisungen an Variablen zu Objekttypen: Dim x As New MyBool[x: false] Dim y As New MyBool [x: false, y: false] Call x.setTrue[x: true, y: false] Set y = x[x: true, y: true] Call y.setFalse[x: false, y: false] If x Is y Then...[(x = y) true]


Herunterladen ppt "Objekt - Jargon Programmierung II Prof. Dr. Michael Löwe."

Ähnliche Präsentationen


Google-Anzeigen