1 / 30

Einführung in die objektorientierte Programmierung

Einführung in die objektorientierte Programmierung. Norbert Abb. Seit wann gibt es Objekt-orientierte Programmierung?. Entwicklung von OO Sprachen Simula 67 Anfang der 70er: Smalltalk viele nicht bekannte Sprachen Eiffel, Ada, C++ ... Visual FoxPro!!!.

stian
Download Presentation

Einführung in die objektorientierte Programmierung

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. Einführung in die objektorientierte Programmierung Norbert Abb

  2. Seit wann gibt es Objekt-orientierte Programmierung? • Entwicklung von OO Sprachen • Simula 67 • Anfang der 70er: Smalltalk • viele nicht bekannte Sprachen • Eiffel, Ada, C++ • ... Visual FoxPro!!!

  3. Was zeichnet objektorientierte Programmierung aus? • Objekte • Eigenschaften/Properties • Methoden • Klassen • Vererbung

  4. Objekte • Modelle der Wirklichkeit • Substantive • Objekte haben eine 'Identität' • Abgrenzung • 'Verhalten'

  5. Eigenschaften • Ein Objekt hat bestimmte Eigenschaften, die das Objekt kennzeichnen • Kann aus anderen Objekten zusammengesetzt sein • Ein Objekt 'reagiert' auf bestimmte Ereignisse (Events) • Ein Objekt hat Methoden durch die es manipuliert werden kann

  6. Eigenschaften (Properties) • Objekte haben Eigenschaften • Die Namen der Eigenschaften werden durch die Klasse des Objekts festgelegt • Wenn sie nicht privat deklariert sind (Protected) können sie von 'außen' gesehen und manipuliert werden:? oStopuhr.nSec oStopuhr.nSec = 15

  7. Methoden • Gebunden an ein Objekt • Aktionen, mit denen ein Objekt sich selbst verändert oder Nachrichten an andere Objekte schickt • Definieren das Verhalten eines Objektes

  8. Methoden • Methoden sind Prozeduren, die sich auf Objekte einer Klasse beziehen • Methoden können öffentlich oder privat (protected) sein • Wenn Methoden nicht für das aktuelle Objekt definiert sind, werden sie in den Oberklassen (Hierarchie!) gesucht

  9. Klassen • Zusammenfassung von Objekten (?) • Schema eines Objektes • Bauplan eines Objektes • In der Klasse werden die Arten der Eigenschaften definiert • In der Klasse werden die Methoden definiert

  10. Klassen (Beispiel) • Klassen beschreiben Eigenschaften und Verhalten von Objekten DEFINE CLASS Stopuhr AS Container nSek = 0nMin = 0nStd = 0 nAnzSek = 0 PROCEDURE Start This.timer1.enabled = .t. ENDPROC

  11. Instanziierung 1 • Objekte werden als 'Instanzen' von Klassen erzeugt: • Visual FoxPro:oMeinObj = CreateObject('CommandButton') • andere OO Sprachen:oMeinObj := CommandButton.New ()

  12. Instanziierung 2 • Eigenschaften der Instanzen werden besetzt: • oMeinObj.FontName = 'Arial' • oMeinObj.Caption = 'OK' • oMeinObj.Default = .T.

  13. Vererbung • Aufbau aller Klassen auf Basisklassen • Klassen können aufeinander Aufbauen (Klassenhierarchien) • Unterklassen erben Methoden und Eigenschaften von 'Eltern'

  14. Vererbung • Spezialisierung von Klassen (neue, oder spezielle Eigenschaften) • Unterklassen können Eigenschaften und Methoden neu 'überdefinieren' • Klassen können mehrere Unterklassen haben; so entsteht eine Klassenhierarchie

  15. Klassenhierarchie • Eine Klasse entsteht durch 'Subclassing' aus einer anderen • Eigenschaften und Methoden werden implizit von der 'Oberklasse' übernommen • Die VFP Basisklassen haben ein default 'Verhalten' das abgeschaltet werden kann (NoDefault) • Code in einer 'Oberklasse' kann durch :: angesprochen werden

  16. Klassenhierarchie (Beispiel)

  17. This • Mit 'This' kann ein Objekt selbst in einer Methode referenziert werden:This.Caption = 'OK' stattMeineMaske.pgfPF1.pagP1.cmdOK.Caption = 'OK' • 'relative Referenzierung' von Objekten:This.Parent.Caption = 'Seite 1' • Außer 'This': 'ThisForm' und 'ThisFormSet'

  18. Objekthierarchie • Objekte können andere Objekte beinhalten (Container) • Dies kann über mehrere Stufen geschehen:oMeinMas.MeinPagFrm.Seite1.Caption = 'Seite 1' • In Methoden kann das Objekt selbst mit 'This' referenziert werden. • Mit 'With' kann die Schreibweise abgekürzt werden

  19. Arten von Klassen in VFP • Arten von Klassen: • NichtContainer Klassen (normale Controls) • Container Klassen • Alle Klassen haben Events: • Init • Destroy • Error

  20. Container Klassen • Enthalten andere Objekte (die wiederum andere Objekte enthalten können) • Die Eigenschaften der enthaltenen Objekte können zur der Laufzeit verändert werden • Objekte können zur Laufzeit hinzugefügt werden

  21. Container Klassen • Es gibt: • Formset, Form • Grid • ListBox • Pageframe, Page • Toolbar • Container

  22. Control Klassen • Normale 'einfache' Controls: Labels, Boxen, Buttons ... • Es können keine weiteren Objekte hinzugefügt werden

  23. Control Klassen • Es gibt: • CheckBox • CommandButton • EditBox • Image • Label • Line • Spinner ...

  24. Klassenbibliotheken • Klassen können innerhalb von Dateien zusammengefaßt werden • Klassenbibliotheken entsprechen Funktionsbibliotheken • Kb können durch den Anwender angepaßt werden, ohne daß am Sourcecode geändert wird: Unterklassen bilden und Eigenschaften und Methoden verändern

  25. Weitere Begriffe 1 • Polymorphismus: Eine Methode gleichen Namens kann in unterschiedlichen Klassen definiert sein. Die Auswirkungen (der ausgeführte Code) sind aber unterschiedlich • Ereignisse (Events): passieren in der Umgebung von Objekten; Objekte reagieren durch Methoden

  26. Polymorphismus • Schwieriges Wort für einfache Tatsache: Eine Methode kann in unterschiedlichen Klassen verschieden implementiert sein.oStopuhr.Start && Zeit läuft losoListe.Start && erstes Element einer Liste wird aktiviert

  27. Weitere Begriffe 2 • Nachrichten: werden an Objekte gesendet; Objekte reagieren durch Methoden • Kapselung: die Implementierung der Methoden bleibt in der Klasse verborgen

  28. Nachrichten • Nachrichten werden an ein Objekt geschickt um dort bestimmte Methoden auszuführen:=oStopuhr.Start() • Nachrichten können Parameter weitergeben an Methoden (Prozeduren) • Nachrichten können auch innerhalb eines Objekts verwendet werden:This.Parent.UpdateDisplay

  29. Kapselung • Bedeutet dasselbe wie 'Information Hiding' in der strukturierten Programmierung • Alle Daten, die für das Ausführen einer Methode sollten entweder Eigenschaften des Objekts sein, oder als Parameter übergeben werden • Eigenschaften und Methoden, die außerhalb des Objekts nicht benötigt werden, können innerhalb des Objekts 'versteckt' werden

  30. Beispiel Stopwatch • Beispiel aus den 'Control Samles' in VFP • Erweiterung einer Klasse

More Related