Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Programmierung II Prof. Dr. Michael Löwe

Ähnliche Präsentationen


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

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

2 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 Klassen und Objekte

3 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. Klassen und Objekte

4 Ü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 Klassen und Objekte

5 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: ... Klassen und Objekte

6 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 Klassen und Objekte

7 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] Klassen und Objekte

8 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 Nothing y o1: true o2: false Namen: Objekte: x Nothing y o1: true o2: false Namen: Objekte: x Nothing y o1: false Namen: Objekte: x Nothing y o1: false o2: false Namen: Objekte: x Nothing y Namen: Objekte: x Nothing y o1: false Namen: Objekte: x Nothing Klassen und Objekte

9 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? Klassen und Objekte

10 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 Nothing y o1: true o2: false Namen: Objekte: x Nothing y o1: true o2: false o3: true Namen: Objekte: x Nothing y o1: true o3: false Namen: Objekte: x Nothing y o1: false o2: false Namen: Objekte: x Nothing y Namen: Objekte: x Nothing y o1: false Namen: Objekte: x Nothing Klassen und Objekte

11 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? Klassen und Objekte

12 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,...) Klassen und Objekte

13 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 Klassen und Objekte

14 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 Klassen und Objekte

15 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] Klassen und Objekte


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

Ähnliche Präsentationen


Google-Anzeigen