FACHHOCHSCHULE MANNHEIM

Ähnliche Dokumente
FACHHOCHSCHULE MANNHEIM

1.3 Charakteristische Eigenschaften von objektorientierten Systemen

Objektorientierte Softwareentwicklung

Objektorientierte Programmierung (OOP)

Einführung in die Objektorientierung (OO)

Einführung in die Objektorientierung

Objektorientiertes Software-Engineering

Kapitel

Einführung in die Objektorientierung

Einführung in die Objektorientierung

Objekt-orientierte Programmierung

Programmieren 2 C++ Überblick

Qualitätssicherung von Software

FACHHOCHSCHULE MANNHEIM

Programmierparadigmen

Lehrstuhl für Wirtschaftsinformatik Prof. Dr. Roland Gabriel

Objektorientierte Programmierung

OOSE 01 JAVA MIT BLUEJ UND UML-BY-EXAMPLE

Programmierparadigmen A01 OOP. Programmierparadigmen

Objektorientierte Programmierung II

Auf einen Blick. 1 Einleitung Die Basis der Objektorientierung Die Prinzipien des objektorientierten Entwurfs...

Praxisbuch Objektorientierung

10. Programmierungs-Phase: Objektorientierung Software Engineering

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 2. Teil

Objektorientierte Konzepte

Objektorientierte Programmierung

7. Programmierungs- Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

Vorlesung Datenstrukturen

Konzepte der Programmiersprachen

Objektorientierte Programmierung OOP

Programmierung im Grossen

5.2 Entity-Relationship-Modell

Einführung in die objektorientierte Programmierung

FACHHOCHSCHULE MANNHEIM

Java Einführung Objektorientierte Grundkonzepte

Geoinformation I Datenmodellierung

Einführung in die Programmierung Wintersemester 2008/09

IDEE: Paralleles Modellieren von Funktionen (Methoden) und Daten. Ein Objekt ist die softwaretechnische Einheit, die Daten und Funktionen enthält.

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Programmieren in Java

Programmieren in JAVA. Kapitel 0

Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung

Übungen Softwaretechnik I

Objektorientierung. Objekte

Java-Programmierung mit NetBeans

Informationsverarbeitung im Bauwesen

Praktische Softwaretechnologie

UML (Unified Modelling Language) von Christian Bartl

7. Zusammenfassung (1)

Gliederung der Folien

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Objektmodellierung. Grundkurs C++

Software-Entwurfsmuster (weitere) A01 OOP. Software-Entwurfsmuster (weitere)

Hydroinformatik I: Klassen

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich

Programmieren I. Überblick Objektorientierung Heusch 12 Ratz 7. Institut für Angewandte Informatik

Hydroinformatik I - WiSe 2018/2019 V5: Klassen

Die Klasse Vertiefung

Einführung in die Objektorientierte Programmierung Vorlesung 2: Mikroskopisches und Makroskopisches Computational Thinking.

UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language

11. Komponenten Grundlagen der Programmierung 1 (Java)

13 Abstrakte Datentypen

Softwaretechnik WS 16/17. Übungsblatt 01

Prinzipien der objektorientierten Programmierung (OOP)

Einstieg in die Informatik mit Java

Angewandte Mathematik und Programmierung

Systemanalyse. - Folien zur Vorlesung für AI3 im Sommersemester Teil 5 -

Informationsverarbeitung im Bauwesen

Hydroinformatik I: Klassen

Objektorientierte Programmierung. Agenda für heute, 26. März, Eines der drei wichtigsten Programmierparadigmen

Polymorphie/Späte Bindung Abstrakte Klassen Interfaces. Polymorphie/Späte Bindung Abstrakte Klassen Interfaces

Programmieren in Java

Objektorientiertes Programmieren

Objektorientierte Programmierung Teil 1: Einführung

2. Objektorientierter Entwurf

Das Softwaresystem BASEMENT

Objektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern

Repetitorium Informatik (Java)

Abschnitt 10: Datenstrukturen

Einführung in die Informatik 1

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie

Objektorientierung. Grundlagen und Modellierung

Java-Grundkurs für Wirtschaftsinformatiker

WESTFÄLISCHE WILHELMS-UNIVERSITÄT MÜNSTER. Advanced Matlab. living knowledge WWU Münster. Mario Ohlberger, Martin Drohmann, Stefan Girke 10/05/2012

Übersicht. Vorstellung des OO-Paradigmas

7. Objektorientierung. Informatik II für Verkehrsingenieure

Buchvorstellung Domain-Driven Design

Datentypen. strukturierte. elementare. skalare reelle statische dynamische int. list. real float. set. record. inhomogen. homogen

2. JAVA-Programmierung. Informatik II für Verkehrsingenieure

Objektorientierte Programmierung. Agenda für heute, 1. April, Eines der drei wichtigsten Programmierparadigmen

Einführung in die Programmierung

Unified Modelling Language

Java-Grundkurs für rtschaftsinformatiker

Angewandte Mathematik und Programmierung

Grundlagen 1: Modelle & Mengen

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0

Software Engineering

Transkript:

Objektorientierte Programmierung 3. Vorlesung Prof. Dr. Peter Knauber FACHHOCHSCHULE MANNHEIM Hochschule für Technik und Gestaltung Wiederholung: Begriffsübersicht Strukturierte vs. objektorientierte Programmierung Definitionen, Beispiele, Zitate: Methoden Operationen Polymorphismus Folie 1

der Objektorientierung Klassen Instanziierung Vererbung / Inheritance Attribute Polymorphismus Dynamische Bindung Initialisierung Methoden Operationen Mitteilungen / Messages Sichtbarkeit Kapselung Identität von n Struktur und Verhalten Delegation Objektorientierte Analyse (OOA) Objektorientiertes Design (OOD) Objektorientierte Programmierung (OOP) Objektorientiertes Testen Objektorientierte Wartung Folie 2 Ideen der Objektorientierung Software wird gesehen als eine Sammlung diskreter (entsprechend denen aus der realen Welt) inklusive ihrer (Daten-) Struktur und ihres Verhaltens. Das führt zu Datenorientierung (im Unterschied zum imperativen Stil) Programm / Algorithmen sind um Daten gruppiert Folie 3

Konzepte der strukturierten Programmierung Prozeduren stehen im Mittelpunkt Unterprogramme als wichtigste Strukturierungseinheit oft der Problemstellung nicht angemessen Konzentration auf algorithmische Abstraktion mangelnde Datenabstraktion, Information-Hiding Eingabe Prozedur Ausgabe Folie 4 Konzepte der objektorientierten Programmierung Daten () stehen im Mittelpunkt, bewirken eine Zustandsänderung Die Programmstruktur ist möglichst nahe an der Struktur des Problemfeldes orientiert Lokalitätsprinzip Objekt (Datum) Folie 5

Folie 6 Definition: Objekt Ein Objekt ist eindeutig identifizierbar, gehört zu einer Klasse, hat einen änderbaren Zustand in Form von Werten von Attributen, unterstützt (polymorphe) Operationen. Weitere Eigenschaften: Ein Objekt wird charakterisiert durch die, die es interpretieren kann, hat eine begrenzte Sicht auf andere (benutzt deren Operationen). Folie 7

Beispiel für 1/2 Identität: genau dieser Kreis Struktur: diese drei Attribute Identität: genau dieses Verschiebe (x, y) Klassenzugehörigkeit: Quadrat alle Quadrate haben - diese Struktur und -dieses Verhalten Verschiebe (x, y) :Kreis :Achsenparalleles-Quadrat Mittelpunkt x0=4, y0=6 Linke untere Ecke x0=2, y0=1 Radius r=3 Kantenlänge l=5 Klassenzugehörigkeit: alle Kreise haben - diese Struktur und -dieses Verhalten Berechne-Fläche () Berechne-Fläche () Verhalten: diese beiden Operationen Folie 8 Beispiel für 2/2 Verschiebe (x, y) Verschiebe (x, y) :Kreis Mittelpunkt Radius r=3 :Punkt x0=4, y0=6 Berechne-Fläche () Sicht auf andere : der Mittelpunkt ist durch ein Punkt-Objekt realisiert Folie 9

Alle Daten werden diskreten, unterscheidbaren Entitäten (also n) zugeordnet. Zur Erinnerung: [Objektorientierte] Software wird gesehen als eine Sammlung diskreter (...) inklusive ihrer (Daten-) Struktur und ihres Verhaltens. Alle sind unterscheidbar, auch wenn alle Attributwerte übereinstimmen. Möglichkeiten der Realisierung: Adresse im Speicher Spezielles, geschütztes Attribut (eindeutige Nummer)... Jedes Objekt gehört (eindeutig) zu einer Klasse; Näheres dazu gleich Folie 10 Folie 11

Beispiele für Konkrete... Ein Fahrrad Ein Fenster (in echt oder auf dem Bildschirm) Ein Textdokument Ein Absatz in einem Textdokument Ein Bankkonto... vs. abstrakte Ein Algorithmus Eine Zuteilungsstrategie für Betriebssystemressourcen Eine Datentabelle Folie 12 Zitate: 1/2 An object represents an individual, identifiable item, unit, or entity, either real or abstract, with a well-defined role in the problem domain. M. Smith & S. Tockey, 1988 A single object is simply an instance of a class. Grady Booch, 1991 An object has state, behavior, and identity; the structure and behavior of similar objects are defined in their common class. Grady Booch, 1991 Folie 13

Zitate: 2/2 Instead of a bit-grinding processor raping and plundering data structures, we have a universe of well-behaved objects that courtesly ask each other to carry out their various desires. D. Ingalls, 1981 An object by itself is intensely uninteresting. Grady Booch, 1991 Folie 14 Folie 15

, Operationen, Methoden Zur Erinnerung aus der Definition: Ein Objekt... unterstützt (polymorphe) Operationen. Wir haben bisher gesagt: senden und empfangen. Beim Empfang einer Nachricht vollzieht ein Objekt eine entsprechende Operation. Anders ausgedrückt: Eine Operation ist eine Aktion oder Transformation, die ein Objekt beim Empfang einer Nachricht ausführt (oder die auf dem Objekt ausgeführt wird). Die Interpretation der Operation obliegt dem Objekt. Eine spezifische Implementierung einer Operation innerhalb einer bestimmten Klasse heißt Methode. Folie 16 Definition: Polymorphismus Polymorphismus bedeutet, dass die gleiche Operation von verschiedenen n in unterschiedliches Verhalten umgesetzt werden kann. Eine Operation ist also eine Abstraktion analogen Verhaltens über verschiedene hinweg. Folie 17

Polymorphismus 1/3 Achtung: Im Sinne der Verständlichkeit/Nachvollziehbarkeit von Programmen sollte das verschiedene Verhalten nach Außen immer sinngemäß gleich (also analog) wirken! Beispiel: Die Nachricht Verschiebe sollte nicht zum Drehen eines Objekts führen... Folie 18 Polymorphismus 2/3 Implementierung von Polymorphismus: Auf Grundlage des Namens der Operation und der Klassenzugehörigkeit des betroffenen Objekts wird die passendste Methode ausgewählt. Wie das geschieht und welches die passendste Methode ist, ist abhängig von der verwendeten Programmiersprache (manchmal sogar programmierbar)! Hinweis: Der Benutzer einer Operation (Sender einer Nachricht) braucht nicht zu wissen, wie viele Methoden zur Auswahl stehen (oder ob überhaupt mehrere). Folie 19

Polymorphismus 3/3 Vorteil des objektorientierten Paradigmas: Beim Hinzufügen neuer Klassen braucht bestehender Code nicht verändert zu werden, vorausgesetzt, die neuen Klassen stellen entsprechende Methoden zur Verfügung (oder erben sie). Folie 20 Beispiel für Polymorphismus 1/2 Polymorphismus: gleiche Operation, (zufälligerweise) gleiche Realisierung Verschiebe (x, y): x0 := x0 + x; y0 := y0 + y; Verschiebe (x, y): x0 := x0 + x; y0 := y0 + y; :Kreis Mittelpunkt x0=4, y0=6 Radius r=3 :Achsenparalleles-Quadrat Linke untere Ecke x0=2, y0=1 Kantenlänge l=5 Berechne-Fläche (): result := r*r*pi Berechne-Fläche (): result := l*l Polymorphismus: gleiche Operation, Folie 21 verschiedene Realisierung

Beispiel für Polymorphismus 2/2 Benutzen anderer : die Verschiebe-Operation wird durchgereicht oder delegiert Verschiebe (x, y): Mittelpunkt.Verschiebe(x, y) Verschiebe (x, y): x0 := x0 + x; y0 := y0 + y; :Kreis Mittelpunkt Radius r=3 :Punkt x0=4, y0=6 Berechne-Fläche (): result := r*r*pi Polymorphismus: gleiche Operation, verschiedene Realisierung Folie 22 Folie 23

der Objektorientierung Klassen Instanziierung Vererbung / Inheritance Attribute Polymorphismus Dynamische Bindung Initialisierung Methoden Operationen Mitteilungen / Messages Sichtbarkeit Kapselung Identität von n Struktur und Verhalten ( ) Delegation Objektorientierte Analyse (OOA) Objektorientiertes Design (OOD) Objektorientierte Programmierung (OOP) Objektorientiertes Testen Objektorientierte Wartung Folie 24 Noch ein Zitat... Just as the person holding a hammer tends to see everything in the world as a nail, so the developer with an object-oriented mindset begins to think that everything in the world is an object. Grady Booch, 1991 Folie 25

Ausblick Klassen und ihre Instanziierung Die Notation von n Klassen Attributen Operationen OO Entwurf nach Booch Ein Beispiel Vererbung Die Notation von Vererbung Folie 26