Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

G.Heyer Digitale Informationsverarbeitung 1 17. Grundkonzepte OOP: Intuitive Einführung Maklerfirma Grundwert & Co verwaltet zu verkaufende Häuser. Jedes.

Ähnliche Präsentationen


Präsentation zum Thema: "G.Heyer Digitale Informationsverarbeitung 1 17. Grundkonzepte OOP: Intuitive Einführung Maklerfirma Grundwert & Co verwaltet zu verkaufende Häuser. Jedes."—  Präsentation transkript:

1 G.Heyer Digitale Informationsverarbeitung Grundkonzepte OOP: Intuitive Einführung Maklerfirma Grundwert & Co verwaltet zu verkaufende Häuser. Jedes Haus ist ein Objekt. Jedes Objekt ist durch Attribute und ihre Werte beschrieben und kann bestimmte Operationen (Methoden) ausführen. (Einfamilienhaus) Haustyp: Stadthaus Besitzer: Dr. Müller Adresse: Lindenau Fläche: 180 Grundstück: 450 Baujahr: 1955 Preis: 490 TDM Preis angeben (Einfamilienhaus) Haustyp: Landhaus Besitzer: Dr. Meier Adresse: Naumburg Fläche: 240 Grundstück: 950 Baujahr: 1968 Preis: 680 TDM Preis angeben Attributwerte von außen nur über Operationen zugreifbar (Kapselung)

2 G.Heyer Digitale Informationsverarbeitung 2 Objektklassen Einfamilienhaus Haustyp: Besitzer: Adresse: Fläche: Grundstück: Baujahr: Preis: Preis angeben Alle bisher betrachteten Objekte gehören zur selben Klasse Einfamilienhaus Jede Instanz der Klasse besitzt dieselben Attribute und Methoden Die Ausführung von Methoden werden durch Senden einer Nachricht an ein Objekt aktiviert Die ermittelten Ausgabedaten werden an den Sender der Nachricht zurückgegeben Firma Grundwert & Co verwaltet auch Geschäftshäuser mit den Attributen Besitzer, Adresse, Anzahl Büros, Aufzug, Tiefgarage, Baujahr, Preis und den Operationen Preis angeben und Anzahl Büros ermitteln.

3 G.Heyer Digitale Informationsverarbeitung 3 Klassenhierarchien Einfamilienhaus Haustyp: Fläche: Grundstück: Immobilie Besitzer: Adresse: Baujahr: Preis: Geschäftshaus Anzahl Büros: Aufzug: Tiefgarage: Anz. Büros angeben Preis angeben Klasse Immobilie vererbt Attribute und Operationen an Unterklassen

4 G.Heyer Digitale Informationsverarbeitung 4 Klassen Objekte sind Entitäten mit festgelegten Eigenschaften und Verhaltensweisen Auf sie kann nur über Operationen zugegriffen werden (Kapselung) Eine Klasse spezifiziert die Gemeinsamkeiten einer Menge von Objekten. Sie besitzt einen Mechanismus, um Objekte zu erzeugen (Neu, new, create...) Zur Beschreibung einer Klasse gehören üblicherweise: Objekte "wissen", zu welcher Klasse sie gehören. Oft wird in Klassen auch gespeichert, welche Instanzen sie besitzen Name der Klasse Namen und Typen der Attribute Namen und Schnittstelle der Operationen Angabe der an die Klasse vererbenden Ober-Klassen Klasse Objekt1 Attribute Operationen Objektliste Typen Spezifikationen Objekt der Klasse Attribute Werte Objekt2 Objekt der Klasse Attribute Werte

5 G.Heyer Digitale Informationsverarbeitung 5 Attribute Attribute (Smalltalk: instance variable) beschreiben Eigenschaften eines Objekts. Alle Objekte einer Klasse besitzen dieselben Attribute, aber möglicherweise unterschiedliche Attributwerte Attributwerte können nur durch Operationen der Klasse geändert und gelesen werden Muß-Attribute müssen stets einen Wert besitzen, Kann-Attribute nicht Attribute, die eindeutiges Identifizieren eines Objekts ermöglichen, heißen Schlüsselattribute Student (Student) Matrikel-Nr Name Geburtsdatum Datum Vordip Noten Franz Motz Helga Klotz , 2.0, 1.3

6 G.Heyer Digitale Informationsverarbeitung 6 Operationen beschreiben Dienstleistungen, die Objekt zur Verfügung stellt Operation ist ausführbare Tätigkeit im Sinne eines Algorithmus Alle Objekte einer Klasse verwenden dieselben Operationen man unterscheidet: 1. Operationen mit lesendem Zugriff (accessor operation) Studienbescheinigung erstellen, lesender Zugriff auf Attribute von Student 2. Operationen mit schreibendem Zugriff (update operation) Note eintragen, schreibender Zugriff auf Attribut Noten von Student 3. Berechnungsoperationen Durchschnittsnote ermitteln Typ I: Objektoperationen (oder einfach Operationen) Operationen werden durch Namen, Ein-/Ausgabeschnittstelle und Spezifikation beschrieben Schnittstelle enthält alle Parameter, über die mit aufrufendem Objekt kommuniziert wird

7 G.Heyer Digitale Informationsverarbeitung 7 Typ II: Klassenoperationen Operationen, die der jeweiligen Klasse zugeordnet sind und nicht auf ein einzelnes Objekt der Klasse angewendet werden können wirken auf mehrere oder alle Objekte derselben Klasse oder manipulieren Klassenattribute Liste aller Studenten erstellen; Liste der Studenten, die 1999 Vordiplom erworben haben, erstellen dienen dazu, ein neues Objekt der Klasse zu erzeugen und ihre Muß- Attribute zu initialisieren neuer Student soll immatrikuliert werden. Durch Botschaft "Neu" an Klasse Student wird neues, leeres Objekt erzeugt, das dann initialisiert wird. Typ III: Erzeugungsoperationen

8 G.Heyer Digitale Informationsverarbeitung 8 Spezifikation von Operationen: Standardbefehle 1.Erzeugen eines Objektes: Klasse.Create(Attribut1, Attribut2,...) Mitarbeiter.Create(Name=Hansen, Geburtsdatum=5/10/65, Gehalt=3000) 2.Löschen eines Objekts Klasse.Delete() Seminar.Delete() 3.Botschaft an Objekt Klasse.Operation (in Param1, out Param2,...) Sparkonto.Buchen(3000) 4.Schreiben eines Attributwertes Klasse.SetAttribute() Student.SetDatumVordiplom(2/4/97 ) 5.Lesen eines Attributwertes Klasse.GetAttribute() Roboterarm.GetAktuellePosition()

9 G.Heyer Digitale Informationsverarbeitung 9 Vererbung Klassen bilden eine Klassenhierarchie (Vererbungsstruktur). Für jede Klasse werden ihre direkten Oberklassen spezifiziert. Die Oberklassenrelation ist die transitive Hülle der direkten Oberklassenrelation. Wenn Klasse K1 an Klasse K2 vererbt (K1 ist Oberklasse von K2), dann verfügt K2 auch über Eigenschaften und Operationen von K1. K2 kann das von K1 geerbte Verhalten modifizieren. Man spricht von Redefinition oder Überschreiben einer Operation Falls jede Klasse höchstens eine direkte Oberklasse besitzt, spricht man von Einfachvererbung. Bei Mehrfachvererbung kann jede Klasse mehrere direkte Oberklassen besitzen. Namenskonflikte müssen durch geeignete Konventionen gelöst werden. Vorteile des Vererbungskonzeptes: - entspricht der Weise, wie wir begrifflich die Welt strukturieren - Redundanz wird vermieden, Änderbarkeit unterstützt

10 G.Heyer Digitale Informationsverarbeitung 10 Klassenhierarchie Oberklasse Attribute Klassenattribute Operationen Typen Typen + Werte Spezifikationen Klasse1 Klasse2 Klasse3 Objekt der Klasse1 Attribute Werte Objekt i Objekt k Objekt j Objekt der Klasse2 Attribute Werte Objekt der Klasse3 Attribute Werte Oberklasse Attribute Klassenattribute Operationen Oberklasse Attribute Klassenattribute Operationen Typen Typen + Werte Spezifikationen Typen Typen + Werte Spezifikationen

11 G.Heyer Digitale Informationsverarbeitung 11 Personenbeispiel Person Name Adresse Adresse drucken Kunde Funktion Umsatz Umsatz ermitteln Dozent Biographie Tageshonorar Honorar ermitteln Kunde1 Name: Hans Dampf Adresse: Kleinheim Funktion: Entwickler Umsatz: 5 Mio Adresse drucken Umsatz ermitteln Dozent1 Name: Petra Schlau Adresse: Winzdorf Biographie:... Tageshonorar: 2000 Adresse drucken Honorar ermitteln Oberklasse Instanz

12 G.Heyer Digitale Informationsverarbeitung 12 Polymorphismus deutsch etwa: Vielgestaltigkeit Bedeutung in OO-Kontext: dieselbe Botschaft kann an Objekte verschiedener Klassen geschickt werden, die darauf auf eigene Weise reagieren können. Sender muß also nicht Klasse des Empfängers kennen Botschaft Buchen gesendet an Konto- oder Sparkontoobjekt Konto KontoNr Kontostand Buchen (Betrag: Geld) Sparkonto Buchen (Betrag: Geld) Oberklasse Operation Buchen (Betrag:Geld) Kontostand := Kontostand + Betrag Operation Buchen (Betrag:Geld) GetKontostand; if Kontostand+Betrag >= 0 then Konto.Buchen(Betrag) Botschaft Buchen gesendet an ein Sparkonto => redefinierte Operation

13 G.Heyer Digitale Informationsverarbeitung 13 Prozedur P soll Information über alle Personen in einer Liste drucken. Für Studenten soll auch die Matrikelnummer gedruckt werden, für Angestellte die Personalnummer, für Wissenschaftler das Institut. In Pascal müßte bei der Abarbeitung der Liste jeweils getestet werden, welche Druckprozedur aufzurufen ist. P müßte die Namen all dieser verschiedenen Prozeduren kennen. OOP: Jedes Objekt versteht die Nachricht drucken und führt die adäquate Methode aus. Erweiterung um neue Typen von Personen führt nicht zur Änderung von P, nur die entsprechende Methode ist für diese Objekte zu definieren. Noch ein Beispiel

14 G.Heyer Digitale Informationsverarbeitung 14 Zusammenfassung Objekt-Orientierung Ein Objekt ist ein individuelles Exemplar einer Klasse. Operationen (Methoden) beschreiben das Verhalten eines Objekts. Attribute beschreiben die Eigenschaften des Objekts. Attributwerte sind die aktuellen Werte der Attribute. Auf sie kann nur über Operationen zugegriffen werden (Kapselung). Klassen fassen Objekte mit gleichen Attributen und Operationen zusammen. Durch Vererbung werden Attribute und Operationen von Oberklassen an ihre Unterklassen weitergegeben. Es entsteht eine Klassenhierarchie. Geerbte Operationen können in Unterklassen redefiniert werden. Bei Einfachvererbung besitzt jede Unterklasse nur eine direkte Oberklasse, ansonsten spricht man von Mehrfachvererbung. Objekte und Klassen kommunizieren durch Botschaften. Polymorphismus erlaubt es, gleiche Botschaften an Objekte verschiedener Klassen zu senden.

15 G.Heyer Digitale Informationsverarbeitung 15 Objektorientiertes Programmieren Was ist objektorientiertes Programmieren? a) engerer Sinn: Programm in bestimmter objektorientierter PS schreiben b) weiterer Sinn: Software-Entwurfsmethodik OOP älter als 30 Jahre (Simula 67) Siegeszug beginnt in 80er Jahren (Smalltalk) heute äußerst populär, auch in kommerzieller SW-Entwicklung

16 G.Heyer Digitale Informationsverarbeitung 16 Gründe für den Erfolg : OOP bietet Antwort auf (mindestens) 4 softwaretechnische Probleme: 1) Simulation Modellierung der Komponenten eines Systems Beschreibung der möglichen Dynamik eines Systems Test und Analyse von Abläufen eines Systems (Beispiel: Kreuzung simulieren unter Berücksichtigung örtlicher Gegebenheiten, Ampeln, Fahrzeuge, Ausmaße,...) 2) Graphische Benutzeroberflächen nicht-sequentielle, interaktive Steuerung von Anwendungsprogrammen über direkt manipulierbare graphische Bedienelemente (Eingabefenster, Auswahlmenüs,... ) Oberflächengestaltung, die der Modellvorstellung des Benutzers entgegenkommt und leichte Bedienbarkeit garantiert quasi-paralleles Arbeiten Verfügbarkeit von Standardfunktionalität (Maushandling,...)

17 G.Heyer Digitale Informationsverarbeitung 17 Anforderungen, die sich aus 1-4 ergeben 3) Wiederverwendung von Programmen Auffinden von geeigneten Programmbausteinen Modifizierbarkeit: Strukturierung und Parametrisierung wiederverwendbarer Bausteine 4) Verteilte Programmierung Programme, die auf unterschiedlichen Rechnern laufen, sollen kommunizieren und Daten austauschen können. Räumliche Verteilung von Daten, Parallelität und Kommunikation müssen darstellbar sein. Paralleles Ausführungsmodell, reale Welt muß modellierbar sein Strukturierung der Programme in kooperierende Programmteile mit definierten Schnittstellen Anpaßbarkeit und Spezialisierung von Programmteilen

18 G.Heyer Digitale Informationsverarbeitung 18 Grundidee des OOP Programm entspricht einem System kommunizierender Objekte Objekte sind selbständige Ausführungseinheiten haben lokalen Zustand, gespeichert in Attributwerten haben Identität und Lebensdauer (können erzeugt und zerstört werden) empfangen und bearbeiten Nachrichten (einzige Möglichkeit auf sie zuzugreifen, Kapselung) gehören zu einer Klasse, diese legt Attribute und Nachrichten (Methoden) des Objekts fest Klassen sind hierarchisch geordnet und vererben Eigenschaften an Unterklassen Alle Operationen gehören zu einem Objekt, lassen sich nur durch Nachricht veranlassen

19 G.Heyer Digitale Informationsverarbeitung 19 Methodendeklarationen Aufruf durch Voranstellen des Objekts, das Methode ausführen soll: lampe.brennt() brennt:soll true liefern, falls Lampe anSelektor lampenort:soll Raum liefern, in dem sich die Lampe befindetSelektor umschalten:soll Lampe an- bzw. ausschalten, kein Wert Modifikator Lampe:dient der Erzeugung von Objekten des Typs LampeKonstruktor new Lampe(bad) liefert neue Lampe im Bad Zustandsinformationen in Attributen gespeichert: hier an und ort class Lampe { public boolean brennt(){ return an; } public Raum lampenort(){ return ort; } public void umschalten(){ an = !an } public Lampe (Raum r){an = false; ort = r } private boolean an ; private Raum ort ; }

20 G.Heyer Digitale Informationsverarbeitung 20 Kapselung Die Methoden und Attribute einer Klasse, die von anderen Objekten aus zugänglich sein sollen, werden public deklariert. private bedeutet: nur das Objekt selbst kann Methode oder Attribut verwenden Vorteile: 1. Implementierung einer Klasse K kann geändert werden, ohne daß Programme, die K benutzen, zu ändern sind. 2. Konsistenz zwischen Objekten kann gewährleistet werden. Beispiel zu 2. Jeder Raum soll eine Liste der in ihm aufgestellten Lampen verwalten. Aufnahme von r.aufstellen(this) in Rumpf von Konstruktor Lampe soll bewirken, daß in Lampenliste von r die neue Lampe (this) eingetragen wird. Es gilt also: Raum R ist ort einer Lampe L gdw L Element der Lampenliste von R ist. Da von außen nicht auf ort und die Lampenliste zugegriffen werden kann, kann diese Beziehung von außen nicht verletzt werden. Auch Klassen können innerhalb von Paketen (packages) gekapselt sein.

21 G.Heyer Digitale Informationsverarbeitung 21 Klassifikation Klassen werden in Hierarchien gegliedert (übliches Vorgehen, etwa Tierarten, Sportarten, Typen von Personen, Musikstile, Fahrzeuge,...) Jede Instanz einer speziellen Klasse ist auch ein Element der jeweils abstrakteren Klassen (is-a Beziehung) Beim OOP werden Objektklassen häufig bzgl. ihrer Schnittstellen klassifiziert: K1 spezieller als K2, wenn K1 mindestens die öffentlichen Methoden und Attribute von K2 besitzt. Allgemeinste Klasse: object

22 G.Heyer Digitale Informationsverarbeitung 22 Zentraler Aspekt der OO Programmentwicklung: Entwurf geeigneter Klassenhierarchie. In der Praxis oft: Erweiterung existierender Hierarchien durch Abstraktion bzw. Spezialisierung Beispiel: tool kits, etwa für Benutzeroberflächen, stellen Klassen zur Verfügung, die für Bedürfnisse der konkreten Anwendung weiter zu verfeinern sind. Implementierung für Standardmethoden wird geerbt, nur neue, spezielle Eigenschaften müssen programmiert werden.


Herunterladen ppt "G.Heyer Digitale Informationsverarbeitung 1 17. Grundkonzepte OOP: Intuitive Einführung Maklerfirma Grundwert & Co verwaltet zu verkaufende Häuser. Jedes."

Ähnliche Präsentationen


Google-Anzeigen