1 / 15

Objekt - „Jargon“

Objekt - „Jargon“. Programmierung II Prof. Dr. Michael Löwe. Inhalt. Begriffe Objekterzeugung: „New“, „Create“ etc. Das Undefinierte: „Nil“, „Null“, „Nothing“ etc. Objektzuweisung: „:=“, „Set...=“ etc. Das Clonen: „clone“, „copy“, etc. Objektvergleich: „=“, „==“, „Is“ etc.

halla-moss
Download Presentation

Objekt - „Jargon“

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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. Variablen-Assoziation Wert: 0 Name: i Variablen-Assoziation Variablen-Assoziation Name: b V1: ... V2: ... Vn: ... Name: b Objekterzeugung Variablendeklaration und Variablenbelegung: • Dim i As Integer • Dim b As MyBool • b = New MyBool Klassen und Objekte

  6. Variablen-Assoziation Nothing Name: b 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 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. Objekte: Namen: Nothing x Objekte: Namen: Objekte: Objekte: Objekte: Namen: Namen: Namen: Objekte: Namen: Objekte: Namen: Nothing Nothing Nothing Nothing x x x x Nothing o1: false Nothing x o1: false o1: true o1: true x y y y y o1: false o2: false o2: false o2: false y y 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 ... 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. Objekte: Namen: Objekte: Namen: Nothing Nothing x x o1: true o1: true y o3: false y o2: false Objekte: Namen: o3: true Nothing x Objekte: Objekte: Namen: Namen: Objekte: Namen: Objekte: Namen: Nothing Nothing x x Nothing Nothing x o1: true o1: false x y y o1: false o2: false o2: false y y 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 ... 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

More Related