Software-Entwicklung: Konzepte der Objektorientierung

Größe: px
Ab Seite anzeigen:

Download "Software-Entwicklung: Konzepte der Objektorientierung"

Transkript

1 Software-Entwicklung: Konzepte der Objektorientierung 1

2 Übersicht Objektorientierte Softwareentwicklung Klasse und Objekt Attribut und Operation Schnittstelle Taxonomie und Vererbung Weitere Begriffe 2

3 Softwareentwicklung Die Entwicklung hochwertiger Software ist aufwändig und wird immer aufwändiger... Ein paar Gründe: Umfang der zu erstellenden Applikationen Grafische Benutzeroberflächen (GUIs) Verteilte Applikationen Verteilte Datenhaltung... 3

4 Soziale Komplexität Software-Entwicklung ist nicht ausschliesslich eine technische Aufgabe, sondern auch ein komplexer sozialer Prozess Softwaresysteme sind (in unterschiedlichem Masse) in ein soziales Umfeld eingebettet Bei der Entwicklung solcher Systeme spielt auch linguistisches und psychologisches Wissen sowie kommunikative Fähigkeiten eine wichtige Rolle 4

5 Abstraktion Die Geschichte der Software- Entwicklung ist verbunden mit einer kontinuierlichen Steigerung der Abstraktion Bitmuster Makrobefehle Prozeduren Abstrakte Datentypen Objekte Frameworks Entwurfsmuster Komponenten? 5

6 Objektorientierung Eine bestimmte Art, Software zu organisieren Integration von Daten und Prozeduren in Form von Objekten im Vordergrund Objektorientiert: Resultierende Softwaresysteme Herangehensweisen bei der Softwareentwicklung Die verwendeten Programmiersprachen und Entwicklungsumgebungen 6

7 Begriffe und Abkürzungen OOA/OOD: Object-Oriented Analysis and Object-Oriented Design: Untersuchung eines Problembereichs und Entwickeln eines Modells auf der Grundlage objektorientierter Konzepte OOP: Object-Oriented Programming OOSE: Object-Oriented Software-Engineering OOPL: Object-Oriented Programming Language: Programmiersprache, die Konzepte der Objektorientierung wie Abstraktion, Kapselung, hierarchische Strukturen und Vererbung unterstützt; Beispiele: Smalltalk, C++ und Java 7

8 Analyse und Design Jeder Anwendungsrealisierung sollte unabhängig von der Art der Realisierung eine Planungsphase vorausgehen Es gibt verschiedene Methoden, Notationen und Werkzeuge, die diese Planungsphase zum Gegenstand haben Ziel ist es, die Komplexität, mit der man es bei der Entwicklung grosser Software-Systeme zu tun hat, beherrschbar zu machen 8

9 Notation UML: Unified Modelling Language Grady Booch, James Rumbaugh, Ivar Jacobson Object Management Group (OMG) als Standardisierungsgremium Die UML ist im wesentlichen eine Vereinheitlichung der grafischen Darstellung und Semantik der Modellierungselemente Es wird dadurch keine Methodik vorgegeben 9

10 Methodik Mit der UML ist eine Notation festgelegt Unabhängig davon existieren verschiedene Ansätze zur Entwicklungsmethodik (auch: Prozess, Vorgehensmodell) Beispiele: Unified Process (UP) Object Engineering Process (OEP) Rational Unified Process (RUP) 10

11 Werkzeuge Die UML ist ausdrucksstark und detailreich Die auf ihr basierenden Methoden sind oft für grösste Entwicklungsprojekte ausgelegt Es existieren leistungsfähige Werkzeuge, die Notation und Methodik unterstützen Aber: Das Zusammenspiel zwischen UML, Werkzeug und Methodik ist alles andere als trivial 11

12 Werkzeuge Im Normalfall muss Methodik und Werkzeugeinsatz daher an die Erfordernisse des Projekts angepasst werden Werkzeuge können dabei helfen, die Komplexität beherrschbar zu machen Aber: Werkzeuge können die fachlichen und methodischen Fehler ihrer Anwender nicht ausgleichen 12

13 Objektorientierte SwE Merkmale des objektorientierten Ansatzes: Ganzheitliche Arbeitsgegenstände: Einheit von Daten und Operationen (Klassenkonzept) statt deren Trennung Bessere Abstraktionsmöglichkeiten: Modellierung stärker vom Lösungs- in den Problembereich verschoben Methodische Durchgängigkeit: Ergebnisse können in die nachfolgenden Phasen übernommen werden 13

14 Abstraktion Alle Programmiersprachen unterstützen Abstraktionen, allerdings in unterschiedlichem Ausmass Je nach Art und Qualität der Abstraktionsmöglichkeiten lassen sich Probleme geringerer oder höherer Komplexität lösen Assemblersprachen bieten nur eine geringe Abstraktion der jeweiligen Maschinensprachen Sprachen wie Fortran, BASIC, und C sind Abstraktionen von Assemblersprachen 14

15 Abstraktion Bestimmte Sprachen unterstützen weitergehende Abstraktion, aber beschränkt auf bestimmte Problemklassen: Lisp: Listen als zentrale Datenstruktur Prolog: Folge von Entscheidungen und ein Backtracking-Algorithmus Objektorientierung: Nähe zwischen Problem- und Lösungsbereich abzubildende Elemente des Problembereichs können als Objekte beschrieben werden 15

16 Abstraktionsmittel Teil-Ganzes-Beziehung Ein Objekt besteht aus Teilen, es hat Teile Ein Auto besteht aus (hat) Motor, Karosserie, Sitzen In Programmiersprachen gibt es dafür Strukturen Oberbegriff-Beziehung Fasst mehrere Arten unter einem Begriff zusammen Ein Cabriolet ist ein Auto; Ein Auto ist ein Fahrzeug Nur in objektorientierten Programmiersprachen unterstützt 16

17 Methodische Durchgängigkeit Entwickler: Anwender: Entwickler: Anwender: "Was ist Euch wichtig?" "Der Kunde." "Was ist ein Kunde, welche Merkmale sind für Euch relevant?" "Der Kunde hat einen Namen, eine Anschrift, und eine Bonität, die wir überprüfen." 17

18 Methodische Durchgängigkeit "Der Kunde." Kunde name "Der Kunde hat einen Namen, eine Anschrift, und eine Bonität, die wir überprüfen." anschrift bonitaet bonitaetpruefen() Klasse 18

19 Methodische Durchgängigkeit Kunde name anschrift class Kunde { String name; Anschrift anschrift; Bonitaet bonitaet; bonitaet bonitaetpruefen() } public void bonitaetpruefen() {... } 19

20 Objektorientierte SwE Vorteile objektorientierter Software-Entwicklung: Nähe zum Problembereich: erleichtert Kommunikation zwischen Entwicklern und Experten Methodische Durchgängigkeit (s.o.) Objektorientierte Modelle sind änderungsfreundlicher, da Änderungen häufig lokal begrenzt möglich sind Abstraktionsmöglichkeiten ermöglichen bessere Wiederverwendbarkeit Aber: Auch mit diesem Ansatz ist es problemlos möglich, sehr schlechte Ergebnisse zu erzielen 20

21 Übersicht Objektorientierte Softwareentwicklung Klasse und Objekt Attribut und Operation Schnittstelle Taxonomie und Vererbung Weitere Begriffe 21

22 Modellbildung Objekte entstehen durch Zusammenfassung von Daten und zugehörigen Prozeduren Sie werden üblicherweise verwendet, um bestimmte Gegenstände oder abstrakte Konzepte des Aufgabenbereichs zu modellieren Dabei werden die Gegenstände vereinfacht, es wird von Details abstrahiert (Modellbildung) Strukturelle Ähnlichkeit zwischen Modell und modelliertem Bereich kann das Erarbeiten und Verstehen eines Modells vereinfachen 22

23 Klasse und Objekt Aus: Bernd Österreich Objektorientierte Softwareentwicklung 23

24 Klasse und Objekt Eine Klasse beschreibt die Struktur und das Verhalten einer Menge gleichartiger Objekte Ein Objekt ist eine zur Ausführungszeit vorhandene und für ihre Instanzvariablen Speicher belegende Instanz, die sich entsprechend dem Protokoll ihrer Klasse verhält Statt Objekt oder Instanz wird auch die Bezeichnung Exemplar verwendet 24

25 Klassen und Objekte Aus: Bernd Österreich Objektorientierte Softwareentwicklung 25

26 Klassen und Objekte Klasse «instance of» Objekt Kuh «instance of» Elsa 26

27 Übersicht Objektorientierte Softwareentwicklung Klasse und Objekt Attribut und Operation Schnittstelle Taxonomie und Vererbung Weitere Begriffe 27

28 Eigenschaften Objekte lassen sich folgendermaßen charakterisieren: Sie befinden sich in einem Zustand Sie zeigen ein bestimmtes Verhalten Zustand und Verhalten beschrieben durch: Attribute und Operationen Ausserdem spielen eine Rolle: Zusicherungen und Beziehungen 28

29 Eigenschaften Attribute In einem Objekt enthaltene Informationen bzw. Daten Operationen Beschreiben das Verhalten der Objekte (auch Methoden genannt) Zusicherungen Bedingungen, die Objekte erfüllen müssen Beziehungen Beziehungen zu anderen Klassen (Oberbegriff- Beziehung, Assoziation,...) 29

30 Klasse Notationselemente für Klassen Aus: Bernd Österreich Objektorientierte Softwareentwicklung 30

31 Klasse class Kreis { int radius; Point mittelpunkt; public void setradius(int neuerradius) { if (neuerradius > 0) { // Zusicherung radius = neuerradius;... } } public void setposition(point pos) {...} public void anzeigen() {...} public void entfernen() {...} } 31

32 Objekt Notationselemente für Objekte Aus: Bernd Österreich Objektorientierte Softwareentwicklung 32

33 Terminologie Der Zustand von Softwareobjekten wird beschrieben durch die im Objekt gespeicherten Daten Allgemein: Smalltalk: C++: Attribute Instanzenvariablen Elementdaten (member data) Das Verhalten der Objekten wird in Prozeduren beschrieben: Allgemein: Smalltalk: C++: Methoden, Operationen Methoden Elementfunktionen (member functions) 33

34 Klasse und Objekt: Abgrenzung Die Abgrenzung von Klassen und Objekten ist nicht immer ganz eindeutig Oft werden auch die Klassen zu den Objekten gezählt oder es gibt wie in den Delegation Languages überhaupt keine Unterscheidung zwischen Klassen und Instanzen In einigen Ansätzen lassen sich auch Klassen zu so genannten Metaklassen zusammenfassen; die Instanzen solcher Meta-klassen sind dann selbst Klassen 34

35 Nachrichtenaustausch Objekte senden sich gegenseitig Nachrichten zu Die Nachrichten führen dazu, dass Operationen ausgeführt werden Ein Objekt versteht genau die Nachrichten, zu denen es Operationen besitzt KreisEck setradius() Kreis 35

36 Nachrichtenaustausch Einem Objekt eine Nachricht schicken: Die zugehörige Operation für ein bestimmtes Objekt ausführen: einkreis setradius: 17. einkreis.setradius(17); "Smalltalk" // C++, Java Objektattribute sind gewöhnlich gekapselt und nur über entsprechende Operationen zugänglich Eine Nachricht kann von einem Objekt nur interpretiert werden, wenn es eine passende Operation besitzt 36

37 Spezielle Nachrichten Selektoren greifen auf den Zustand eines Objekts zu, ändern diesen aber nicht Konstruktoren erzeugen Instanzen von Klassen Destruktoren werden beim Löschen von Objekten aktiv Iteratoren erlauben den Zugriff auf Teilobjekte zusammengesetzter Objekte 37

38 Übersicht Objektorientierte Softwareentwicklung Klasse und Objekt Attribut und Operation Schnittstelle Taxonomie und Vererbung Weitere Begriffe 38

39 Kapselung und Schnittstelle Klassen fassen Attribute und Operationen zu einer Einheit zusammen Attribute sind nur i.a. indirekt über die Operationen der Klasse zugänglich (Datenkapselung) Die Schnittstelle legt fest, welche Operationen die Objekte einer Klasse ausführen können Die Implementierung realisiert die in der Schnittstelle festgelegten Operationen 39

40 Kapselung und Schnittstelle 40

41 Kapselung und Schnittstelle Die Trennung von öffentlicher Schnittstelle und interner Implementierung hat folgende Vorteile Die Schnittstelle dient zur Verwendung einer Klasse; sie versteckt alle für die Verwendung nicht relevanten Details und dient somit auch der Übersichtlichkeit Wenn die Schnittstelle stabil bleibt, kann die Implementierung einer Klasse modifiziert werden, ohne Einfluss auf andere Programmteile, die diese Klasse benutzen 41

42 Übersicht Objektorientierte Softwareentwicklung Klasse und Objekt Attribut und Operation Schnittstelle Taxonomie und Vererbung Weitere Begriffe 42

43 Taxonomie und Vererbung Vererbung, Generalisierung/Spezialisierung Klassen können Spezialisierungen anderer Klassen darstellen, d.h. Klassen können hierarchisch angeordnet werden Dabei übernehmen (erben) sie die Eigenschaften der ihnen übergeordneten Klassen Diese Eigenschaften können sie bedarfsweise spezialisieren (überschreiben) aber nicht eliminieren 43

44 Taxonomie und Vererbung Oberklasse Basisklasse Superklasse Unterklasse Subklasse Aus: Bernd Österreich Objektorientierte Softwareentwicklung 44

45 Taxonomie und Vererbung Substitution Objekte von Unterklassen müssen jederzeit auch anstelle von Objekten ihrer Oberklasse(n) eingesetzt werden können Mehrfachvererbung Wenn eine Klasse mehr als eine Oberklasse besitzen kann, spricht man von Mehrfachvererbung Warnung Man solle Vererbung vermeiden, wenn es Alternativen gibt 45

46 Strukturierung von Eigenschaften Jede Klasse soll für genau einen (sachlogischen) Aspekt des Gesamtsystems verantwortlich sein Die in diesem Verantwortlichkeitsbereich liegenden Eigenschaften sollen in einer Klasse zusammengefasst werden Eine Klasse soll keine Eigenschaften enthalten, die nicht zu diesem Verantwortungsbereich gehören Kohärenzprinzip 46

47 Strukturierung von Eigenschaften Aus: Bernd Österreich Objektorientierte Softwareentwicklung 47

48 Strukturierung von Eigenschaften Anzeigen und Entfernen sind gemeinsame Eigenschaften aller geometrischen Figuren Sie müssen aber individuell, abhängig von den Eigenschaften der Subklassen, realisiert werden In der Klasse GeomFigur sind die Operationen anzeigen() und entfernen() daher abstrakte Operationen 48

49 Strukturierung von Eigenschaften class GeomFigur extends Object { int x, y; boolean sichtbar; public abstract void anzeigen(); public abstract void entfernen(); public void setposition(int x, y) { if (sichtbar) { entfernen(); this.x = x; this.y = y; anzeigen(); } else { this.x = x; this.y = y; } } } 49

50 Strukturierung von Eigenschaften class Rechteck extends GeomFigur { int a, b; public void anzeigen() {... } public void entfernen() {... } public void seta(int a) { if (a > 0) { this.a = a; } } public void setb(int b) { if (b > 0) { this.b = b; } } } 50

51 Abstrakte Klassen Klassen, von denen keine konkreten Exemplare erzeugt werden können, bezeichnet man als abstrakte Klassen Abstrakte Klassen werden durch den Eigenschaftswert {abstact} unterhalb des Klassennamens oder durch kursiv gesetzten Klassennamen gekennzeichnet Im Beispiel wird es nur Objekte der Klassen Kreis, Rechteck und Dreieck geben, nicht aber von GeomFigur 51

52 Abstrakte Klassen Aus: Bernd Österreich Objektorientierte Softwareentwicklung 52

53 Übersicht Objektorientierte Softwareentwicklung Klasse und Objekt Attribut und Operation Schnittstelle Taxonomie und Vererbung Weitere Begriffe 53

54 Objektidentität Jedes Objekt ist per Definition unabhängig von seinen konkreten Attributwerten von allen anderen Objekten eindeutig zu unterscheiden Zu diesem Zweck werden künstlich erzeugte Schlüssel verwendet, die keinen inhaltlichen Bezug zu den Eigenschaften der Objekte haben In einem Programm aktive Objekte werden gewöhnlich durch ihre Speicheradresse identifiziert 54

55 Objektidentität Aus: Bernd Österreich Objektorientierte Softwareentwicklung 55

56 Sammlungen (Collections) Sammlungen (auch: Behälterklassen oder Containerklassen) sind Klassen, deren Objekte eine Menge von Objekten verwalten können Sammlungen sind in der Regel in Standardklassenbibliotheken definiert Sie verfügen unter anderem über Operationen zum Anfügen und Entfernen von Objekten Es gibt verschiedene Arten von Sammlungen grundsätzlich lassen sich sequentielle und assoziative Sammlungen unterscheiden 56

57 Sammlungen (Collections) Sammlungsklassen einer Smalltalk-Bibliothek Aus: Bernd Österreich Objektorientierte Softwareentwicklung 57

58 Polymorphie Polymorphie: Eine Operation kann sich (in unterschiedlichen Klassen) unterschiedlich verhalten Statische Polymorphie: Bereits zur Übersetzungszeit eines Programms, wird entschieden, welche Ausprägung einer Operation aufgerufen wird ("frühes Binden") Dynamische Polymorphie: Der genaue Speicherort einer Funktion wird erst ermittelt, wenn der Aufruf stattfindet, also dynamisch zur Laufzeit des Programms ("spätes Binden") 58

59 Dynamische Polymorphie Aus: Bernd Österreich Objektorientierte Softwareentwicklung 59

60 Dynamische Polymorphie void dostuff(shape& s) { s.erase(); //... s.draw(); } Circle c; Triangle t; Line l; dostuff(c); dostuff(t); dostuff(l); 60

3. Konzepte der objektorientierten Programmierung

3. Konzepte der objektorientierten Programmierung 3. Konzepte der objektorientierten Programmierung 3.1 Basiskonzepte 3.2 Generalisierung / Spezialisierung 3.3 Aggregation 3.4 Assoziation 3.5 Nachrichten 3.6 Polymorphismus 3. Konzepte der Objektorientierung

Mehr

Objektorientierte Programmierung OOP

Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte

Mehr

Softwaretechnik (Allgemeine Informatik) Überblick

Softwaretechnik (Allgemeine Informatik) Überblick Softwaretechnik (Allgemeine Informatik) Überblick 1 Einführung und Überblick 2 Abstraktion 3 Objektorientiertes Vorgehensmodell 4 Methoden der Anforderungs- und Problembereichsanalyse 5 UML-Diagramme 6

Mehr

Objektorientierte Softwareentwicklung

Objektorientierte Softwareentwicklung Objektorientierte Softwareentwicklung Objektorientierte Softwareentwicklung Smalltalk CLOS Ada 9 C++ Objektorientierte Softwareentwicklung Object Pascal Java Oberon-2 Frage: Die Bibliothek der Fachhochschule

Mehr

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell Aufgabe 3. Assoziation zwischen

Mehr

Einführung in die Programmierung mit Java. Hörsaalübung

Einführung in die Programmierung mit Java. Hörsaalübung Einführung in die Programmierung mit Java Hörsaalübung Folie 1 Grundlagen der Objektorientierung Seit Anfang der Neunzigerjahre Standardmethode der Softwareentwicklung. Die OOP Objektorientierte Programmierung

Mehr

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell Aufgabe 3. Assoziation

Mehr

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure 7. Objektorientierte Softwareentwicklung/3 Informatik II für Verkehrsingenieure Überblick FOLGENDE BEGRIFFE/PRINZIPIEN SOLLTEN BEKANNT SEIN Objekte Klasse Attribute Fähigkeiten ZIEL DER HEUTIGEN LEHRVERANSTALTUNG

Mehr

Techniken der Projektentwicklung

Techniken der Projektentwicklung diagramme Termin 6 Denken in Schnittstellen Was nun? Einführung Bisher kennengelernt: Modellierung auf Konzeptlevel Usecase-Diagramme Domänenmodelle Jetzt: Übergang zu Spezifikation und Implementierung!

Mehr

OO Softwareentwicklung

OO Softwareentwicklung OO Softwareentwicklung Objektorientierung Prof. Dr. Bernhard Schiefer 1 OO als Ansatz zur Verbesserung der Software-Qualität Modellierung der Welt als selbständig agierende Objekte. Gemeinsame Beschreibung

Mehr

Objektorientierte Programmiersprachen

Objektorientierte Programmiersprachen Objektorientierte Programmiersprachen 1960 Algol 1970 Simula Pascal 1980 Smalltalk C Ada 1990 C++ Eiffel Eine ovale Box symbolisiert eine objektorientierte Programmiersprache. Eine rechteckige Box steht

Mehr

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2 EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0 EDV Kurs 13/2 Inhaltsverzeichnis 1 Objekte... 1 2 Klassen... 3 2.1 Beziehungen zwischen Klassen... 4 2.1.1 Vererbung... 4 2.1.2

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen

Mehr

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 A. Beschreibung der Projektarbeit. Welche Aufgabe haben Sie im Rahmen der Projektarbeit gelöst? 2. Mit welchen Tools bzw. Programmen (Anwendung,

Mehr

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: 5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel Beispiel (3) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Probleme des Implementierungsvorschlags:

Mehr

Grundlagen der Informatik für Ingenieure I

Grundlagen der Informatik für Ingenieure I 3 Einführung in das objektorientierte Programmier-Paradigma 3 Einführung in das objektorientierte Programmier-Paradigma 3.1.1 Top-down structured design 3.1.2 Data-driven design 3.1.3 Object-oriented design

Mehr

Klassendiagramm. Kurzer Überblick über UML - Stand 2006. BlaBla

Klassendiagramm. Kurzer Überblick über UML - Stand 2006. BlaBla BlaBla Diese Kennzeichnungen sind nur Erläuterungen und nicht Bestandteil des Diagramms Quelle: P.Grässle, H.Baumann, P.Baumann, UML projektorientiert, Galileo Verlag, 2003 21 Primäre Begriffe Kapselung

Mehr

1. Java ist... 2. Stammbaum der Programmiersprachen 3. Die "Softwarekrise"

1. Java ist... 2. Stammbaum der Programmiersprachen 3. Die Softwarekrise im Überblick im Überblick Inhalt 1. Java ist... 2. Stammbaum der Programmiersprachen 3. Die Softwarekrise 1. Merkmale von Software 2. Fortlaufende Veränderungen 3. Erschwerte Rahmenbedingungen bei der

Mehr

Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten

Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten Objekt Objekt kapselt Variablen und Routinen Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten Eigenschaften jedes Objekts: Identität (identisch = mehrere

Mehr

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny 3. UML Klassendiagramm Nachtrag 3.1 Einführung UML UML ist eine standardisierte Sprache zur Modellierung von Systemen. In UML werden graphische

Mehr

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern Objektorientierte Programmierung mit Python Polymorphismus und Vererbung Eltern Kind Kind Kind Kind Prinzipien der objektorientierten Programmierung Vererbung Strukturierung von Klassen. Oberbegriffe beschreiben

Mehr

Unified Modeling Language (UML)

Unified Modeling Language (UML) Kirsten Berkenkötter Was ist ein Modell? Warum Modellieren? Warum UML? Viele, viele Diagramme UML am Beispiel Was ist ein Modell? Ein Modell: ist eine abstrakte Repräsentation eines Systems, bzw. ist eine

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel.

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel. EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel.de/~mtr FRAGEN / ANMERKUNGEN Vorlesung Neue Übungsaufgaben MODELLIERUNG

Mehr

5. Abstrakte Klassen

5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Vogel Amsel Drossel Fink Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg,

Mehr

Objektorientierter Software-Entwurf Die Unified Modeling Language 4 1

Objektorientierter Software-Entwurf Die Unified Modeling Language 4 1 Objektorientierter Software-Entwurf Die Unified Modeling Language 4 1 Die Unified Modeling Language Die UML (hier in der Version 0.9) ist ein Satz von Notationen zur Beschreibung objektorientierter Softwaresysteme.

Mehr

Objektorientierte Modellierung (1)

Objektorientierte Modellierung (1) Objektorientierte Modellierung (1) Die objektorientierte Modellierung verwendet: Klassen und deren Objekte Beziehungen zwischen Objekten bzw. Klassen Klassen und Objekte Definition Klasse Eine Klasse ist

Mehr

09.01.14. Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML)

09.01.14. Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML) Vorlesung Programmieren Unified Modeling Language (UML) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Unified Modeling Language (UML)

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren Unified Modeling Language (UML) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Unified Modeling Language (UML)

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22 Kapitel 19 Vererbung, UML Seite 1 von 22 Vererbung - Neben der Datenabstraktion und der Datenkapselung ist die Vererbung ein weiteres Merkmal der OOP. - Durch Vererbung werden die Methoden und die Eigenschaften

Mehr

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure 8. Objektorientierte Programmierung Informatik II für Verkehrsingenieure Grundbegriffe ALAN KAY, ERFINDER DER SPRACHE SMALLTALK, HAT DIE GRUNDBEGRIFFE DER OBJEKTORIENTIERTEN PROGRAMMIERUNG WIE FOLGT ZUSAMMENGEFASST:

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

Praktische Softwaretechnologie

Praktische Softwaretechnologie Praktische Softwaretechnologie Martin Giese Johann Radon Institute for Computational and Applied Mathematics Österr. Akademie der Wissenschaften Linz PSWT 2006 p.1/31 Organisation PSWT 2006 p.2/31 Bestandteile

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

Einführung in Generatives Programmieren. Bastian Molkenthin

Einführung in Generatives Programmieren. Bastian Molkenthin Einführung in Generatives Programmieren Bastian Molkenthin Motivation Industrielle Entwicklung *!!*,(% % - #$% #!" + '( & )!* Softwareentwicklung Rückblick auf Objektorientierung Objektorientierte Softwareentwicklung

Mehr

5.6 Vererbung. Vererbung

5.6 Vererbung. Vererbung 5.6 Vererbung Klassen können zueinander in einer "ist ein"- Beziehung stehen Beispiel: Jeder PKW ist ein Kraftfahrzeug, jedes Kraftfahrzeug ist ein Transportmittel aber: auch jeder LKW ist ein Kraftfahrzeug

Mehr

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7 Java Einführung Umsetzung von Beziehungen zwischen Klassen Kapitel 7 Inhalt Wiederholung: Klassendiagramm in UML Java-Umsetzung von Generalisierung Komposition Assoziationen 2 Das Klassendiagramm Zweck

Mehr

5.5.8 Öffentliche und private Eigenschaften

5.5.8 Öffentliche und private Eigenschaften 5.5.8 Öffentliche und private Eigenschaften Schnittstellen vs. Implementierungen: Schnittstelle einer Klasse beschreibt, was eine Klasse leistet und wie sie benutzt werden kann, ohne dass ihre Implementierung

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

Ministerium für Kultus, Jugend und Sport Baden-Württemberg

Ministerium für Kultus, Jugend und Sport Baden-Württemberg Anlage zu 45-6512-2420/31 Ministerium für Kultus, Jugend und Sport Baden-Württemberg Schulversuch 51-6624.20/100 (früher: /84) vom 26. August 2003 Lehrpläne für das berufliche Gymnasium der sechs- und

Mehr

Klassenbeziehungen & Vererbung

Klassenbeziehungen & Vererbung Klassenbeziehungen & Vererbung VL Objektorientierte Programmierung Raimund Kirner teilweise nach Folien von Franz Puntigam, TU Wien Überblick Arten von Klassenbeziehungen Untertypen versus Vererbung in

Mehr

Code-Erzeugung aus UML-Klassendiagrammen

Code-Erzeugung aus UML-Klassendiagrammen Dominik 09.03.2009 Universität Ulm Gessenharter Inst. f. Programmiermethodik und Compilerbau Code-Erzeugung aus UML-Klassendiagrammen Theorie und Praxis Seite 2 REConf 2009 München Dominik Gessenharter

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008 PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik

Mehr

Algorithmen und Datenstrukturen 07

Algorithmen und Datenstrukturen 07 5. Dezember 2011 1 Besprechung Blatt 6 Fragen 2 Vererbung Allgemein abstract Interfaces 3 Unified Modeling Language (UML) Ablaufdiagramme Klassendiagramme Anwendungsfalldiagramme 4 Vorbereitung Blatt 7

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Modellierungstechniken im Softwaredesign. Praxisprojekt [ai] Control WS 2011/2012 Lara Baschour und Anne Heiting

Modellierungstechniken im Softwaredesign. Praxisprojekt [ai] Control WS 2011/2012 Lara Baschour und Anne Heiting Modellierungstechniken im Softwaredesign Praxisprojekt [ai] Control WS 2011/2012 Lara Baschour und Anne Heiting Was ist Modellierung? Modell = Ein Modell ist eine Repräsentation eines Systems von Objekten,

Mehr

Prinzipien Objektorientierter Programmierung

Prinzipien Objektorientierter Programmierung Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................

Mehr

Kapitel 2: Der Software-Entwicklungsprozess

Kapitel 2: Der Software-Entwicklungsprozess Wie konstruiert man Software? Kapitel 2: Der Software-Entwicklungsprozess SoPra 2008 Kap. 2: Der Software-Entwicklungsprozess (1/10) Der Software-Entwicklungs-Prozess Historisches 1960JJ adhoc Techniken

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

Mehr

Vererbung & Schnittstellen in C#

Vererbung & Schnittstellen in C# Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung

Mehr

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

Mehr

Objektorientierung: Klassen und Objekte

Objektorientierung: Klassen und Objekte Objektorientierung: Klassen und Objekte Klasse: Beschreibung für eine Menge von Objekten Schablone, Bauplan abstrakte Form Objekt: Instanz einer Klasse konkreter Inhalt (Werte) Klassen bestehen aus Attributen

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2008/2009

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2008/2009 PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2008/2009 FB Informatik

Mehr

Modellieren mit der Unified Modeling Language: Klassen- und Objektdiagramme. 11. November 2014

Modellieren mit der Unified Modeling Language: Klassen- und Objektdiagramme. 11. November 2014 Modellieren mit der Unified Modeling Language: Klassen- und Objektdiagramme 11. November 2014 Überblick Was ist die Unified Modeling Language (UML)? die Standardmodellierungssprache für Softwaresysteme

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Die Vererbung ermöglicht es, neue Klassen auf der Basis von schon

Mehr

Einführung in die Informationsverarbeitung Teil Thaller. Stunde VII: Planen und Realisieren

Einführung in die Informationsverarbeitung Teil Thaller. Stunde VII: Planen und Realisieren Einführung in die Informationsverarbeitung Teil Thaller Stunde VII: Planen und Realisieren Manfred Thaller, Universität zu Köln Köln 18. Dezember 2014 Rekapitulation Der Gang der Argumentation 1. Der Rohstoff:

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht

Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur UML-Klassendiagramme als Werkzeug im Unterricht Blitzlicht? In welcher Programmiersprache(n) unterrichten Sie?? In welchem Umfang unterrichten Sie Objektorientierung??

Mehr

Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Einleitende Bemerkungen

Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Einleitende Bemerkungen Einleitende Bemerkungen Einleitende Bemerkungen Ideen hinter der objektorientierten Programmierung Objekte (/* Instanzen einer Klasse */) im Mittelpunkt Objekte bilden Einheit aus Daten (/* Attributen,

Mehr

Java Schulung (Java 2 Java Development Kit 5 / 6)

Java Schulung (Java 2 Java Development Kit 5 / 6) 2. Grundlagen der Objektorientierung 2.1 Klassen, Attribute, Methoden Klassen Eine Klasse beschreibt als Bauplan Gemeinsamkeiten einer Menge von Objekten ist also ein Modell, auf dessen Basis Objekte erstellt

Mehr

Grundzüge der Programmierung. Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN

Grundzüge der Programmierung. Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN Grundzüge der Programmierung Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN Inhalt dieser Einheit JAVA ist objektorientiert! Grundbegriffe der objektorientierten Programmierung:

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Java lernen mit BlueJ

Java lernen mit BlueJ Java lernen mit BlueJ Eine Einführung in die objektorientierte Programmierung David J. Barnes Michael Kölling 4.0 Lernen in Eigenregiegi Vorlesungen Seminare Übungen Bücher Webseiten Diskussionslisten

Mehr

Objektorientierung: Klassen und Objekte

Objektorientierung: Klassen und Objekte Vorlesung und Übung Universität Paderborn Wintersemester 2015/2016 Dr. Peter Pfahler Objektorientierung: Klassen und Objekte EWS, WS 2015/16, Pfahler L-1 Objektorientierung behandelt in "Einführung in

Mehr

Objektorientierte Programmierung. 1. Einführung. Dresden, 10. April 2008

Objektorientierte Programmierung. 1. Einführung. Dresden, 10. April 2008 Fakultät Informatik, Studienrichtung Lehramt Informatik Objektorientierte Programmierung 1. Einführung Dresden, 10. April 2008 Dr. Michael Unger Gymnasium Coswig Schülerrechenzentrum der TU Dresden (mu2@inf.tu-dresden.de)

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine

Mehr

Client-Server-Beziehungen

Client-Server-Beziehungen Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server

Mehr

Analyse und Modellierung von Informationssystemen

Analyse und Modellierung von Informationssystemen Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2014/2015 1 / 29 UML Einführung Klassendiagramme in der UML Relationen zwischen Klassen Einführung:

Mehr

Analyse und Modellierung von Informationssystemen

Analyse und Modellierung von Informationssystemen Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2013 1 / 19 Einführung: Entwurfsmuster Erzeugungsmuster Fabrik-Muster Singleton-Muster Beispiel 2

Mehr

Java für Computerlinguisten

Java für Computerlinguisten Java für Computerlinguisten 2. Objektorientierte Programmierung Christian Scheible Institut für Maschinelle Sprachverarbeitung 28. Juli 2009 Christian Scheible Java für Computerlinguisten 28. Juli 2009

Mehr

Assoziation und Aggregation

Assoziation und Aggregation Assoziation und Aggregation Martin Wirsing in Zusammenarbeit mit Matthias Hölzl, Nora Koch 05/03 2 Ziele Verstehen der Begriffe Assoziation und Aggregation Implementierung von Assoziationen in Java schreiben

Mehr

Analyse und Modellierung von Informationssystemen

Analyse und Modellierung von Informationssystemen Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2013 1 / 19 Einführung: Entwurfsmuster Erzeugungsmuster Fabrik-Muster Singleton-Muster Beispiel 2

Mehr

Objektorientierte Analyse und Entwurf

Objektorientierte Analyse und Entwurf Objektorientierte Analyse und Entwurf Thomas Röfer Funktionale Dekomposition Objektorientierter Ansatz Objekte und Klassen Objektbeziehungen Beispiel Rückblick Datenorganisation und Datenstrukturen Zeichensätze

Mehr

Grundkonstrukte der Objektorientierung in Java, C# und C++

Grundkonstrukte der Objektorientierung in Java, C# und C++ Grundkonstrukte der Objektorientierung in Java, C# und C++ 2 Viele Patterns basieren auf einer Kombination einiger zentraler Modellierungskonstrukte, namentlich auf Schnittstellen- und Implementierungsvererbung

Mehr

Teil 2: OOP und JAVA (Vorlesung 11)

Teil 2: OOP und JAVA (Vorlesung 11) Teil 2: OOP und JAVA (Vorlesung 11) Modul: Programmierung B-PRG Grundlagen der Programmierung II Prof. Dot.-Ing. Roberto Zicari Professur für Datenbanken und Informationssysteme (FB 12) 28.06.06 1 Teil

Mehr

Orientierte Modellierung mit der Unified Modeling Language

Orientierte Modellierung mit der Unified Modeling Language UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler Ziel dieses Seminars Verständnis von Objekt-Orientierung Was sind Klassen? Was ist Vererbung?

Mehr

1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung

1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung K05 Vererbung & Polymorphie in C++ 1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung 2 Vererbung in C++: Grundlagen Analog zu Java unterstützt C++ das Konzept der Vererbung:

Mehr

Programmierkurs Java. Vererbung. Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.

Programmierkurs Java. Vererbung. Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck. Programmierkurs Java Vererbung Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Ähnlichkeiten zwischen Klassen? Beispiel: Klassen Auto

Mehr

1 Objektorientierte Software-Entwicklung

1 Objektorientierte Software-Entwicklung 1 Objektmodellierung 1 Objektorientierte Software-Entwicklung Prof. Dr. Heide Balzert Fachbereich Informatik Fachhochschule Dortmund Heide Balzert 2000 2 Lernziele Wissen, was unter objektorientierter

Mehr

Objektorientierte Systeme

Objektorientierte Systeme Objektorientierte Systeme Einführung: Was ist Objektorientierung? Prof. Dr. Nikolaus Wulff Agenda Was ist Objektorientierung? Objektorientierte Modelbildung Komponenten Verteilte Systeme Ein Blick in die

Mehr

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung Eltern Kind Kind Vererbung Definition von Klassen auf Basis von bestehenden Klassen. Implementierung von ist ein. bildet ein hierarchisches

Mehr

Vererbung. Vererbung von Methoden und Instanzvariablen. Vererbung als Realisierung einer is-a Beziehung.

Vererbung. Vererbung von Methoden und Instanzvariablen. Vererbung als Realisierung einer is-a Beziehung. Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik II: Objektorientierte SW-Entwicklung,

Mehr

Objektorientierte. Softwareentwicklung

Objektorientierte. Softwareentwicklung http://www.oose.de/uml Auszug aus dem Buch: Bernd Oestereich Objektorientierte Softwareentwicklung Analyse und Design mit der Unified Modeling Language 4. aktual. Auflage 1. Preis Leserwahl Objekt-Spektrum

Mehr

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Prof. Dr. Wilhelm Schäfer Paderborn, 15. Dezember 2014 Christian Brenner Tristan Wittgen Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Aufgabe 1 Codegenerierung

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)

Mehr

Objektorientierte Analyse (OOA) Logischer Aufbau (statische Sicht)

Objektorientierte Analyse (OOA) Logischer Aufbau (statische Sicht) Inhalte Klassen(-Diagramm) Objekte Assoziation Multiplizität Aggregation Vererbung Logischer Aufbau (statische Sicht) OOA-Muster Model-View-Controller Konzept (MVC) - noch in Arbeit Seite 1 Klassen Eine

Mehr

J.2 Objektorientiertes Modellieren mit UML

J.2 Objektorientiertes Modellieren mit UML Modellieren mit UML Objektorientiertes Modellieren mit UML 2002 Prof. Dr. Rainer Manthey Informatik II 1 UML: Übersicht in den 1980er Jahren: Entstehen einer Vielzahl objektorientierter Entwurfsmethoden

Mehr

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen 1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen II.2.3 Datenabstraktion - 1 - public class Rechteck { Selektoren

Mehr

Projektmodell Softwareentwicklung: Unified Software Development Process / Unified Process (Teil I)

Projektmodell Softwareentwicklung: Unified Software Development Process / Unified Process (Teil I) Projektmodell Softwareentwicklung: Unified Software Development Process / Unified Process (Teil I) Historisch Kulturelle Informationsverarbeitung Hauptseminar: KLIPS 2.0 Dozent: Prof. Dr. Thaller Referent:

Mehr

4. Objektorientierte Programmierung mit C++

4. Objektorientierte Programmierung mit C++ 4. Objektorientierte Programmierung mit C++ Einführung C++ / Entwicklung/ Sprachfamilie Nicht objektorientierte Erweiterungen von C Grundlagen des Typkonzepts von C++ Ziele der Objektorientierung Objekt

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Programmierkurs C++ Kapitel 7:Objektorientierte Programmierung Seite 1 Objektorientierte Programmierung If programming in PASCAL is like put in a straightjacket, then programming in C is like playing with

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java Bisherige Beobachtungen zu Objekten: werden in Klassen zusammengefasst besitzen Eigenschaften und Verhalten verbergen private Informationen werden geboren, leben und

Mehr

SWE5 Slide 1. Software-Engineering. Vorlesung 5 vom 15.11.2004 Sebastian Iwanowski FH Wedel

SWE5 Slide 1. Software-Engineering. Vorlesung 5 vom 15.11.2004 Sebastian Iwanowski FH Wedel SWE5 Slide 1 Software-Engineering Vorlesung 5 vom 15.11.2004 Sebastian Iwanowski FH Wedel SWE5 Slide 2 Software-Engineering Vorlesungsthemen: 1. Überblick über das Thema und die Vorlesung 2. Grundlegende

Mehr

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ Objektorientierte Programmierung Objektorientierte Programmierung Eine Einführung mit BlueJ stellt die Daten, ihre Struktur und ihre Beziehungen zueinander in den Vordergrund. Weniger im Blickpunkt: die

Mehr

Abschnitt 9: Schnittstellen: Interfaces

Abschnitt 9: Schnittstellen: Interfaces Abschnitt 9: Schnittstellen: Interfaces 9. Schnittstellen: Interfaces 9.1 Die Idee der Schnittstellen 9.2 Schnittstellen in Java 9.3 Marker-Interfaces 9.4 Interfaces und Hilfsklassen 9.5 Zusammenfassung

Mehr

Objektorientierung Grundbegriffe

Objektorientierung Grundbegriffe Objektorientierung Grundbegriffe Um Java programmieren zu können, ist es wichtig, einige objektorientierte Grundkenntnisse zu besitzen, denn die Sprache setzt voll auf dem OO-Paradigma auf. 3.1 Klassen

Mehr