Algorithmen und Datenstrukturen

Größe: px
Ab Seite anzeigen:

Download "Algorithmen und Datenstrukturen"

Transkript

1 Algorithmen und Datenstrukturen Werner Struckmann Wintersemester 2005/06

2 5. Objektorientierte Algorithmen 5.1 Objekte und Klassen 5.2 Vererbung 5.3 Abstrakte Klassen 5.4 Objektorientierte Softwareentwicklung

3 Einführung Das objektorientierte Paradigma der Algorithmenentwicklung hat verschiedene Wurzeln: Realisierung abstrakter Datentypen rechnergeeignete Modellierung der realen Welt (objektorientierte Analyse) problemnaher Entwurf von Sofwaresystemen (objektorientiertes Design) problemnahe Implementierung (objektorientierte Programmierung) 5.1 Objekte und Klassen 5-1

4 Grundlagen der Objektorientierung Klassen Person Patient Mitarbeiter Arzt Chefarzt Begriffswelt des Modellierenden Krankenhaus Mitarbeiter Patienten Schwestern Verwaltung Ärzte Prof. Dr. Sauerbruch Dr. Quincy Fr. Müller Objekte/Instanzen Realität 5.1 Objekte und Klassen 5-2

5 Objekte Ein Objekt ist die Repräsentation eines Gegenstands oder Sachverhalts der realen Welt oder eines rein gedanklichen Konzepts. Es ist gekennzeichnet durch eine eindeutige Identität, durch die es sich von anderen Objekten unterscheidet, statische Eigenschaften zur Darstellung des Zustands des Objekts in Form von Attributen, dynamische Eigenschaften in Form von Methoden, die das Verhalten des Objekts beschreiben. 5.1 Objekte und Klassen 5-3

6 Beispiele für Objekte Eine Person mit Namen Müller und Geburtsdatum (Attribute mit Belegungen) und Methode alter(): int. Eine rationale Zahl mit Zähler und Nenner (Attribute) und Methoden normalisiere() und addiere(r: RationaleZahl) Es findet in der Regel eine Abstraktion statt. Gewisse Aspekte (zum Beispiel das Gewicht einer Person) werden nicht berücksichtigt. Der Zustand eines Objekts zu einem Zeitpunkt entspricht der Belegung der Attribute des Objekts zu diesem Zeitpunkt. Der Zustand eines Objekts kann mithilfe von Methoden erfragt und geändert werden. 5.1 Objekte und Klassen 5-4

7 Methoden Methoden sind in der programmiersprachlichen Umsetzung Prozeduren oder Funktionen, denen Parameter übergeben werden können. Der Zustand eines eine Methode ausführenden Objekts (und nur der dieses Objekts) ist der Methode im Sinne einer Menge globaler Variablen direkt zugänglich. Er kann daher sowohl gelesen als auch verändert werden. 5.1 Objekte und Klassen 5-5

8 Objektmodelle Wertbasierte Objektmodelle: In diesem Modell besitzen Objekte keine eigene Identität im eigentlichen Sinn. Zwei Objekte werden schon als identisch angesehen, wenn ihr Zustand gleich ist. Für zwei Objekte zur Datumsangabe d 1 = und d 2 = gilt in diesem Modell d 1 = d 2. Identitätsbasierte Objektmodelle: Jedem Objekt innerhalb des Systems wird eine vom Wert unabhängige Identität zugeordnet. Zwei Objekte für Personen p 1 = Müller, und p 2 = Müller, sind in diesem Modell nicht identisch: p 1 p Objekte und Klassen 5-6

9 Kapselung und Geheimnisprinzip Objekte verwenden das Geheimnisprinzip und das Prinzip der Kapselung. Sie verbergen ihre Interna Zustand (Belegung der Attribute), Implementierung ihres Zustands, Implementierung ihres Verhaltens. Objekte sind nur über ihre Schnittstelle, also über die Menge der vom Objekt der Außenwelt zur Verfügung gestellten Methoden, zugänglich. Man spricht von den Diensten des Objekts. 5.1 Objekte und Klassen 5-7

10 Nachrichten Objekte interagieren über Nachrichten: Ein Objekt x sendet eine Nachricht n an Objekt y. y empfängt die Nachricht n von x. Innerhalb einer Programmiersprache wird dieser Vorgang meist durch einen Methodenaufruf implementiert. Nachrichten (Methodenaufrufe) können den Zustand eines Objektes verändern. Ein Objekt kann sich selbst Nachrichten schicken. 5.1 Objekte und Klassen 5-8

11 Beziehungen zwischen Objekten Objekte können in Beziehungen zueinander stehen. Die Beteiligten an einer Beziehung nehmen Rollen ein. Rolle des Arztes: behandelnder Arzt, Rolle des Patienten: Patient. Ein Objekt kann mit mehreren Objekten in der gleichen Beziehung stehen. Rolle von Arzt: behandelnder Arzt, Rolle von Patient 1: Patient, Rolle von Patient 2: Patient. Nachrichten können nur ausgetauscht werden, wenn eine Beziehung besteht. Beziehungen können sich während der Lebenszeit eines Objekts verändern. 5.1 Objekte und Klassen 5-9

12 Klassen Objekte besitzen eine Identität, verfügen über Attribute und Methoden, gehen Beziehungen zu anderen Objekten ein und interagieren über Nachrichten. Es gibt in der Regel Objekte, die sich bezüglich Attribute, Methoden und Beziehungen ähnlich sind. Daher bietet es sich an, diese Objekte zu einer Klasse zusammenzufassen. 5.1 Objekte und Klassen 5-10

13 Klassen Patient name: String geburtsdatum: Date diagnose: String p1: Patient name: Müller geburtsdatum: diagnose: Grippe p2: Patient name: Meier geburtsdatum: diagnose: Husten p3: Patient name: Schulz geburtsdatum: diagnose: Kleinwuchs 5.1 Objekte und Klassen 5-11

14 Klassen Eine Klasse ist die Beschreibung von Objekten, die über eine gleichartige Menge von Attributen und Methoden verfügen. Sie beinhaltet auch Angaben darüber, wie Objekte dieser Klasse verwaltet (zum Beispiel erzeugt oder gelöscht) werden können. Klassendefinitionen sind eng verwandt mit abstrakten Datentypen. Sie legen Attribute und Methoden der zugehörigen Objekte fest. Objekte einer Klasse nennt man auch Instanzen dieser Klasse. Beziehungen (Assoziationen) zwischen den Objekten werden auf Klassenebene beschrieben. Ein Konstruktor ist eine Methode zum Erzeugen von Objekten. 5.1 Objekte und Klassen 5-12

15 Klassenvariable und -methoden Es gibt Attribute von Klassen, die nicht an konkrete Instanzen gebunden sind. Diese heißen Klassenvariable oder statische Variable. In dieser Sprechweise werden instanzgebundene Attribute auch als Instanzvariable bezeichnet. Klassenvariable existieren für die gesamte Lebensdauer einer Klasse genau einmal unabhängig davon, wie viele Objekte erzeugt wurden. Neben Klassenvariablen gibt es auch Klassenmethoden, d. h. Methoden, deren Existenz nicht an konkrete Objekte gebunden ist. Klassenmethoden werden auch statische Methoden genannt. 5.1 Objekte und Klassen 5-13

16 Vererbung Häufig gibt es Klassen, die sich in Attributen, Methoden und Beziehungen ähnlich sind. Beispiel: Zahl, natürliche Zahl, ganze Zahl, rationale Zahl. Man versucht, zu ähnlichen Klassen eine gemeinsame Oberklasse zu finden, die die Ähnlichkeiten subsumiert und ergänzt die Unterklassen nur um die individuellen Eigenschaften. Eine Unterklasse erbt die Attribute und Methoden der Oberklasse. 5.2 Vererbung 5-14

17 Vererbung Person name: String geburtsdatum: Date Patient name: String geburtsdatum: Date patientennr: Integer diagnose: String Gemeinsamkeiten Arzt name: String geburtsdatum: Date mitarbeiternr: Integer fachrichtung: String 5.2 Vererbung 5-15

18 Vererbung B erbt alle Attribute und Methoden von A und fügt in der Regel weitere hinzu. A ist die Basisklasse (Oberklasse) und B die abgeleitete Klasse (Unterklasse). B ist eine Spezialisierung von A und A eine Generalisierung von B. A B 5.2 Vererbung 5-16

19 Vererbung und Polymorphismus Jede Instanz b Bist auch ein a A. Einfachvererbung: Jede abgeleitete Klasse besitzt genau eine Vaterklasse. In Java: class B extends A {... } A B Eine Variable vom Typ einer Basisklasse kann während ihrer Lebensdauer sowohl Objekte ihres eigenen Typs als auch solche von abgeleiteten Klassen aufnehmen. Dies wird als Polymorphismus bezeichnet. 5.2 Vererbung 5-17

20 Vererbung Eine Unterklasse erbt von ihrer Oberklasse alle Attribute und Methoden und kann diese um weitere Attribute und Methoden ergänzen. Erben heißt: Die Attribute und Methoden der Oberklasse können in der Unterklasse verwendet werden, als wären sie in der Klasse selbst definiert. 5.2 Vererbung 5-18

21 Vererbung Vererbungen können mehrstufig sein. Jede abgeleitete Klasse erbt die Attribute und Methoden der jeweiligen Oberklasse. Es entstehen Vererbungshierarchien. A B C 5.2 Vererbung 5-19

22 Vererbung Vererbungshierarchien können sehr komplex sein. Sie lassen sich durch azyklische gerichtete Graphen darstellen. B A C E D F G 5.2 Vererbung 5-20

23 Verdecken von Variablen Eine Unterklasse kann eine Variable deklarieren, die denselben Namen trägt, wie eine der Oberklasse. Hierdurch wird die weiter oben liegende Variable verdeckt. Dies wird häufig dazu benutzt, um den Typ einer Variablen der Oberklasse zu überschreiben. In manchen Programmiersprachen gibt es Konstrukte, die den Zugriff auf verdeckte Variable ermöglichen (in Java: Verwendung des Präfixes super ). 5.2 Vererbung 5-21

24 Überlagern von Methoden Methoden, die aus der Basisklasse geerbt werden, dürfen in der abgeleiteten Klasse überlagert, d. h. neu definiert, werden. Da eine Variable einer Basisklasse Werte von verschiedenen Typen annehmen kann, entscheidet sich bei überlagerten Methoden im Allgemeinen erst zur Laufzeit, welche Methode zu verwenden ist: Dynamische Methodensuche. Wird eine Methode in einer abgeleiteten Klasse überlagert, wird die ursprüngliche Methode verdeckt. Aufrufe der Methode beziehen sich auf die überlagernde Variante. In manchen Programmiersprachen gibt es Konstrukte, die den Zugriff auf überlagerte Methoden ermöglichen (in Java: Verwendung des Präfixes super ). 5.2 Vererbung 5-22

25 Modifikatoren Mithilfe von Modifikatoren können Sichtbarkeit und Eigenschaften von Klassen, Variablen und Methoden beeinflusst werden. Die Sichtbarkeit bestimmt, ob eine Klasse, Variable oder Methode in anderen Klassen genutzt werden kann. Eigenschaften, die über Modifikatoren gesteuert werden können, sind z. B. die Lebensdauer und die Veränderbarkeit. Beispiele für Modifikatoren in Java sind: public, protected, private, static, final, Vererbung 5-23

26 Mehrfachvererbung A C Eine Klasse kann im Allgemeinen mehrere Oberklassen besitzen. In diesem Fall spricht man von Mehrfachvererbung (multiple inheritance) im Gegensatz zur Einfachvererbung (single inheritance). Problematisch ist die Behandlung von Konflikten, wenn gleichnamige Attribute oder Methoden in verschiedenen Oberklassen definiert werden. Mehrfachvererbung ist in Java nur für Schnittstellen erlaubt. B 5.2 Vererbung 5-24

27 Abstrakte Methoden Eine Methode heißt abstrakt, wenn ihre Deklaration nur die Schnittstelle, nicht aber die Implementierung enthält. Im Gegensatz dazu stehen konkrete Methoden, deren Deklarationen auch Implementierungen besitzen. Java: Die Deklaration einer abstrakten Methode erfolgt durch den Modifikatorabstract. Anstelle des Rumpfes steht lediglich ein Semikolon. Abstrakte Methoden können nicht aufgerufen werden, sie definieren nur eine Schnittstelle. Erst durch Überlagerung in einer abgeleiteten Klasse und durch Angabe der fehlenden Implementierung wird eine abstrakte Methode konkret. 5.3 Abstrakte Klassen 5-25

28 Abstrakte Klassen Eine Klasse, die nicht instanziiert werden kann, heißt abstrakte Klasse. Klassen, von denen Objekte erzeugt werden können, sind konkrete Klassen. Jede Klasse, die mindestens eine abstrakte Methode besitzt, ist abstrakt. Java: Eine Klasse ist abstrakt, wenn sie mindestens eine abstrakte Methode enthält. Die Deklaration einer abstrakten Klasse erfolgt ebenfalls durch den Modifikatorabstract. Java: Es ist erforderlich, abstrakte Klassen abzuleiten und in der abgeleiteten Klasse eine oder mehrere abstrakte Methoden zu implementieren. Die Konkretisierung kann über mehrere Stufen erfolgen. 5.3 Abstrakte Klassen 5-26

29 Schnittstellen Java: Eine Schnittstelle (Interface) ist eine Klasse, die ausschließlich Konstanten und abstrakte Methoden enthält. Java: Zur Definition einer Schnittstelle wird das Schlüsselwort class durch das Schlüsselwortinterface ersetzt. Java: Alle Methoden einer Schnittstelle sind implizit abstrakt und öffentlich, alle Konstanten final, statisch und öffentlich. Redundante Modifikatoren dürfen angegeben werden. Java: Ein Interface darf keine Konstruktoren enthalten. 5.3 Abstrakte Klassen 5-27

30 Generizität Unter Generizität versteht man die Parametrisierung von Klassen, Datentypen, Modulen, Prozeduren, Funktionen,... Als Parameter werden in der Regel Datentypen (manchmal auch Algorithmen in Form von Prozeduren) verwendet. Deklariert man beispielsweise eine Liste, so sollte die Liste generisch angelegt werden. Dann kann man später Listen von Zahlen, Zeichen, o. ä. erzeugen. Auch ein Sortieralgorithmus kann generisch definiert werden. Man setzt nur voraus, dass der Datentyp eine Ordnungsrelation zur Verfügung stellt. 5.3 Abstrakte Klassen 5-28

31 Realisierung von abstrakten Datentypen Die folgende Elemente müssen im Programm abgebildet werden: Name des ADT: wird üblicherweise der Klassenname Importierte ADTen: werden sowohl zu Definitionen mit dem entsprechenden importierten Typ, als auch zu Import-Anweisungen innerhalb des Programms Objekterzeugende Operatoren: sogenannte Konstruktoren werden in (meist spezielle) Klassenmethoden abgebildet, die ein neues Objekt des gewünschten Typs zurückliefern Lesende Operatoren: sogenannte Selektoren werden zu Methoden, die auf die Attribute nur lesend zugreifen Schreibende Operatoren: sogenannte Manipulatoren werden zu Methoden, die den Zustand des Objekts verändern Axiome: müssen sichergestellt werden 5.4 Objektorientierte Softwareentwicklung 5-29

32 Realisierung eines Kellers in Java (Idee) type Stack(T) import Bool operators empty : Stack push : Stack T Stack pop : Stack Stack top : Stack T empty? : Stack Bool axioms s Stack, x T pop(push(s, x)) = s top(push(s, x)) = x empty?(empty) = true empty?(push(s, x)) = false Die Implementation kann beispielsweise durch Rückgriff auf die in Java existierenden Listen geschehen. 5.4 Objektorientierte Softwareentwicklung 5-30

33 Realisierung eines Kellers in Java (Idee) import java.util.*; class Stack<T> { protected List<T> data; } public Stack() {... } public void push(t elem) {... } public void pop() throws EmptyStackException {... } public T top() throws EmptyStackException {... } public boolean isempty(){... } 5.4 Objektorientierte Softwareentwicklung 5-31

34 Softwareentwicklung Analyse Problembereich Problemlösung Analysemodelle Programmsystem Design Entwurfsmodelle Implementierung 5.4 Objektorientierte Softwareentwicklung 5-32

35 Was ist Software-Technik? W. Hesse, H. Keutgen, A. L. Luft, H. D. Rombach: Ein Begriffsystem für die Software-Technik, Informatik-Spektrum, 7, 1984, S : Software-Technik (Software-Engineering) ist das Teilgebiet der Informatik, das sich mit der Bereitstellung und systematischen Verwendung von Methoden und Werkzeugen für die Herstellung und Anwendung von Software beschäftigt. 5.4 Objektorientierte Softwareentwicklung 5-33

36 Software-Technik setzt solide Kenntnisse in (mindestens) einer Programmiersprache voraus, ist nicht auf eine spezielle Programmiersprache (sondern evtl. eher auf ein Paradigma) zugeschnitten, ist ein weites und wichtiges Gebiet der Informatik. 5.4 Objektorientierte Softwareentwicklung 5-34

37 Teilgebiete der Software-Technik Software-Entwicklung Software-Management Software-Qualitätssicherung 5.4 Objektorientierte Softwareentwicklung 5-35

38 Software-Entwicklung Planungsphase Definitionsphase Entwurfsphase Implementierungsphase Abnahme- und Einführungsphase Wartungs- und Pflegephase 5.4 Objektorientierte Softwareentwicklung 5-36

39 Software-Management Planung Organisation Personaleinsatz Leitung Kontrolle 5.4 Objektorientierte Softwareentwicklung 5-37

40 Software-Qualitätssicherung Qualitätssicherung Prüfmethoden Prozessqualität Produktqualität 5.4 Objektorientierte Softwareentwicklung 5-38

41 Weitere Aspekte Werkzeuge, Computer Aided Software Engineering (CASE) Wiederverwendbarkeit von Software Modellierung, z. B. Unternehmensmodellierung Modellierungssprachen, z. B. UML 5.4 Objektorientierte Softwareentwicklung 5-39

42 Unified Modelling Language UML (Unified Modelling Language) wurde in den 1990er Jahren mit dem Ziel, eine einheitliche auch grafische Notation für die objektorientierte Software-Entwicklung zur Verfügung zustellen, definiert. Sie enthält ca. ein Dutzend verschiedener Modelltypen zur Beschreibung der verschiedenen Systemaspekte. Entwickler der UML waren (und sind) Grady Booch, Ivar Jacobson und James Rumbaugh. UML ist der De-facto-Standard für objektorientierte Analyse und Design. Object Constraint Language (OCL) zur Formulierung von Bedingungen. Für UML ist eine Vielzahl an Werkzeugen verfügbar. UML werden Sie in der Vorlesung Software Engineering und in Praktika gründlich kennen lernen. 5.4 Objektorientierte Softwareentwicklung 5-40

43 Unified Modelling Language Anwendungsfalldiagramme (Benutzersicht) Implementierungsdiagramme (statische Systemstruktur) Objekt- und Klassendiagramme, Paketdiagramme Komponentendiagramme Verteilungsdiagramme Verhaltensdiagramme (dynamisches Systemverhalten) Aktivitätsdiagramme Kollaborationsdiagramme Sequenzdiagramme Zustandsdiagramme 5.4 Objektorientierte Softwareentwicklung 5-41

44 Anwendungsfalldiagramme modellieren die Einbettung eines Systems in seine Umgebung, beschreiben die Sicht auf Systemfunktionalität von außen und werden zur Spezifikation der globalen Systemanforderungen eingesetzt. Kreditkarten-Validierungssystem Kunde Fuehre Kartentransaktion durch Haendler Bearbeite Rechnung Einzelkunde Firmenkunde Verwalte Kundenkonto Finanzinstitut 5.4 Objektorientierte Softwareentwicklung 5-42

45 Klassendiagramme stellen die statische Systemstruktur dar und beschreiben die Systemelemente und ihre Beziehungen zueinander. Bildschirm Bitmap zeichnen() Pixel x :Integer y :Integer Farbe :Colour +Elemente Quadrat Dreieck Icon 5.4 Objektorientierte Softwareentwicklung 5-43

46 Sequenzdiagramme stellen die Abfolge der Nachrichten dar. Sie basieren auf Message Sequence Charts. Reader Librarian System hand_book enter_book_data update [reserved] notify acknowledge_librarian acknowledge_reader 5.4 Objektorientierte Softwareentwicklung 5-44

47 Object Constraint Language Object Constraint Language (OCL) ist eine Sprache, in der z. B. Vor- und Nachbedingungen sowie Schleifeninvarianten ausgedrückt werden können. OCL ist kein Bestandteil von UML, sondern ein Vorschlag für eine Sprache zur Formulierung von Erläuterungen (annotations). Prinzipiell kann hierfür jede Sprache, auch Deutsch oder Englisch, verwendet werden. OCL basiert auf der Prädikatenlogik. Einige Typen von OCL: Void, Boolean, Integer, Real, String, Tupel, Set, Ordered Set, Bag, Sequence. 5.4 Objektorientierte Softwareentwicklung 5-45

48 Objektorientierte Programmiersprachen Algol 60 Simula Einfache Vererbung Koroutinen andere PLs Abstrakte Datentypen Keine Vererbung OOPLs Klassenkonzept Vererbung Ada 83 Modula-2 Eiffel Smalltalk C++ Java sowie verschiedene OO-Derivate anderer Programmiersprachen (Visual-Basic, Delphi) 5.4 Objektorientierte Softwareentwicklung 5-46

49 Objektorientiertes Programmieren Identifizieren Sie die Klassen und die Beziehungen der Klassen untereinander. Achten Sie auf Datenkapselung und Wiederverwendbarkeit. Definieren Sie die Methoden. Denken Sie an die Möglichkeit von abstrakten Methoden und Klassen. Attribute und Methoden, die unabhängig von Instanzen existieren, sind als Klassenvariable bzw. -methoden zu vereinbaren. In der Regel sollten Sie sich auf wenige Klassenvariable und -methoden beschränken. Achten Sie auf Programmiersicherheit. Vergeben Sie nicht mehr Zugriffsrechte als erforderlich (Geheimnisprinzip). Variable, die nicht verändert werden, sollten auch als Konstante im Programm deklariert werden. 5.4 Objektorientierte Softwareentwicklung 5-47

Beispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der

Beispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der Vererbung Vererbung ist ein Konzept der objektorientierten Programmierung,, die es ermöglicht neue Klassen von bereits vorhandenen Klassen abzuleiten. In einer abgeleiteten Klasse (subclass) muss nur spezifiziert

Mehr

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08

Mehr

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

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Anwendungsentwicklung mit Java Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Vererbung (1) 2 Problem: Objekte mit gleichen Attributen/Methoden, aber nicht völlig identisch, z.b., LKW, PKW,

Mehr

Inhaltsüberblick. I. Grundbegriffe - Objekte und Klassen. Organisatorisches. I. Grundbegriffe - Objektorientierte Konzepte

Inhaltsüberblick. I. Grundbegriffe - Objekte und Klassen. Organisatorisches. I. Grundbegriffe - Objektorientierte Konzepte Grundkonzepte Objektorientierter Programmierung Nicole Himmerlich FSU Jena mit Java, Oberon-2, Object-Pascal und Python Inhaltsüberblick I. Grundbegriffe 1) Kopplung 2) Datenkaspelung 3) Konstruktor 4)

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren

Mehr

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Test-Besprechung! Ziele verdeutlichen Große Bild von OOP Wiederholung: Einbettung als Technik

Mehr

Präsentation Interfaces

Präsentation Interfaces Einführung in Java Präsentation Interfaces Nozar Delassaei Marvi Inhalt 1. Erinnerung Klasse Objekte Beispiel Klasse Abstrakte Klasse Beispiel Abstrakte Klasse Mehrfachvererbung-1 Mehrfachvererbung-2 2.

Mehr

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

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich WS 02/03 Warum muss ein Objekt wissen, zu welcher Klasse es gehört? Damit die Klassenzugehörigkeit

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

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

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

Einführung in die Programmierung

Einführung in die Programmierung Skript zur Vorlesung: Einführung in die Programmierung WiSe 2009 / 2010 Skript 2009 Christian Böhm, Peer Kröger, Arthur Zimek Prof. Dr. Christian Böhm Annahita Oswald Bianca Wackersreuther Ludwig-Maximilians-Universität

Mehr

7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen

7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen 7. Schnittstellen Grundlagen zu Schnittstellen 7. Schnittstellen Eine Schnittstelle (Interface) ist eine Spezifikation eines Typs in Form eines Typnamens und einer Menge von Methoden, die keine Implementierungen

Mehr

Vorlesung Programmieren. Bisher: Klassen und Objekte. Was ist mit ähnlichen Klassen? Vererbung und Polymorphismus

Vorlesung Programmieren. Bisher: Klassen und Objekte. Was ist mit ähnlichen Klassen? Vererbung und Polymorphismus Vorlesung Programmieren Vererbung und Polymorphismus Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Bisher: Klassen und Objekte Haupteigenschaften:

Mehr

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode Methoden und Klassen Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode

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

Analyse und Modellierung von Informationssystemen

Analyse und Modellierung von Informationssystemen Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2013 1 / 18 UML Einführung Klassendiagramme in der UML Relationen zwischen Klassen 2 / 18 UML: Grundsätzliches

Mehr

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

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

Mehr

Jason T. Roff UML. IT Tutorial. Übersetzung aus dem Amerikanischen von Reinhard Engel

Jason T. Roff UML. IT Tutorial. Übersetzung aus dem Amerikanischen von Reinhard Engel Jason T. Roff UML IT Tutorial Übersetzung aus dem Amerikanischen von Reinhard Engel Inhaltsverzeichnis Inhaltsverzeichnis Einführung 11 Grundlagen der UML 15 Warum wir Software modellieren 16 Analyse,

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

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Skript zur Vorlesung: Einführung in die Programmierung WiSe 2009 / 2010 Skript 2009 Christian Böhm, Peer Kröger, Arthur Zimek Prof. Dr. Christian Böhm Annahita Oswald Bianca Wackersreuther Ludwig-Maximilians-Universität

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 10: Mehr zur Vererbung und abstrakte Klassen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Mehr zur Vererbung Methoden vererben und überschreiben

Mehr

Objektorientierte Programmierung mit Java. Grundlagen Übersicht. Programmiersprachen

Objektorientierte Programmierung mit Java. Grundlagen Übersicht. Programmiersprachen Objektorientierte Programmierung mit Grundlagen 27.10.2008 1 Übersicht 27.10.2008 2 1 Übersicht Klassen und Objekte in - Klassen - Objekte - Klassen - Objekte 27.10.2008 3 Übersicht 27.10.2008 4 2 Einführung

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

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

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 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik Klassen und höhere Datentypen Objekte, Felder, Methoden Küchlin/Weber: Einführung in die Informatik Klassen Klasse (class) stellt einen (i.a. benutzerdefinierten) Verbund-Datentyp dar Objekte sind Instanzen

Mehr

Einführung in die Informatik

Einführung in die Informatik Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester

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

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

Grundzüge der Programmierung. Wiederverwendung VERERBUNG Grundzüge der Programmierung Wiederverwendung VERERBUNG Inhalt dieser Einheit Syntax: Vererbung in Java Superklassen - Subklassen Konstruktorenaufruf in Subklassen super, abstract und final 2 Code-Reuse

Mehr

Übungen Softwaretechnik I

Übungen Softwaretechnik I Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Übungen Softwaretechnik I Übung 5: Objektorientierte Analyse Einführung Objektorientierung in der

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

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Objektorientierung in C++ (2) Beziehungen zwischen Klassen Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 530 Beziehungen zwischen Klassen Assoziation

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

Vererbung. Was versteht man unter dem Begriff Vererbung?

Vererbung. Was versteht man unter dem Begriff Vererbung? Was versteht man unter dem Begriff Vererbung? Elternkonstrukt - Datenelemente - Methoden o Deklaration o Definition Kindkonstrukt... Main... Elternkonstrukt b = new Kindkonstrukt() b.fn() Komponenten &

Mehr

Übersicht. Vorstellung des OO-Paradigmas

Übersicht. Vorstellung des OO-Paradigmas Java, OO und UML Vorstellung des OO-Paradigmas Übersicht Umsetzung des OO-Paradigmas in Java Einführung (seeeeeehr rudimenter) in UML zur graphischen Darstellung von OO Grammatik und Semantik von Java

Mehr

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

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

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

Java Einführung Objektorientierte Grundkonzepte

Java Einführung Objektorientierte Grundkonzepte Java Einführung Objektorientierte Grundkonzepte Inhalt Verständnis der grundlegenden Konzepte der Objektorientierung: Objekte Nachrichten Kapselung Klassen und Instanzen Vererbung Polymorphismus Darstellung

Mehr

Java Vererbung. Inhalt

Java Vererbung. Inhalt Java Vererbung Inhalt 1 Zielsetzung... 2 1.1 Bewertung... 2 2 Grundlagen der Vererbung... 2 2.1 Super und Subklassen... 2 3 Überladen von Methoden... 4 3.1 Unterschiedliche Parameter... 4 3.2 Gleiche Parameter

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

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

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

Programmieren in Java

Programmieren in Java Programmieren in Java Einführung in die objektorientierte Programmierung Teil 2 2 Übersicht der heutigen Inhalte Vererbung Abstrakte Klassen Erweitern von Klassen Überladen von Methoden Überschreiben von

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

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 09: Vererbung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil Einführung in die Vererbung Motivation Das Schlüsselwort extends Einführendes

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

Überschreiben von Methoden

Überschreiben von Methoden Vergleich der DoME Realisierungen: Methode ausgeben Version 1 (ohne Vererbung): Anzeigen aller Informationen CD: A Swingin Affair (64 Min)* Frank Sinatra Titelanzahl: 16 Mein Lieblingsalbum von Sinatra

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

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

Programmieren I. Kapitel 8. Vererbung

Programmieren I. Kapitel 8. Vererbung Programmieren I Kapitel 8. Vererbung Kapitel 8: Vererbung Ziel: Wesentliches objektorientiertes Konzept kennenlernen Subtypen Idee Probleme und Varianten Vererbung in Java dynamische Bindung abstrakte

Mehr

Java, OO und UML Fortsetzung

Java, OO und UML Fortsetzung Java, OO und UML Fortsetzung Das Objektorientierte Paradigma OO bildet keine geschlossene theoretisch abgegrenzte Basis (wie z.b. das Relationsmodell relationaler Datenbanken) OO ist eine Sammlung und

Mehr

Wiederholung zur Vorlesung Programmieren

Wiederholung zur Vorlesung Programmieren Wiederholung zur Vorlesung Jan 2007 Wintersemester 2007/2008 Computerlinguistik, Campus DU Einstieg Erläutern sie in knappen Worten die notwendigen Schritte um ein einfaches Java-Programm zu schreiben

Mehr

Java I Vorlesung Vererbung und Sichtbarkeit

Java I Vorlesung Vererbung und Sichtbarkeit Java I Vorlesung 4 Vererbung und Sichtbarkeit 17.5.2004 Vererbung Überladen, Überschreiben, Verstecken, Verschatten Zugriffskontrolle Statische Members Wiederholung: OOP Programme bestehen aus Klassen.

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

Faustregeln zu Zusicherungen

Faustregeln zu Zusicherungen Faustregeln zu Zusicherungen Zusicherungen sollen stabil sein (vor allem an Wurzel der Typhierarchie) keine unnötigen Details festlegen explizit im Programm stehen unmissverständlich formuliert sein während

Mehr

Programmierkurs C++ Abstrakte Klassen und Methoden

Programmierkurs C++ Abstrakte Klassen und Methoden Programmierkurs C++ Abstrakte Klassen und Methoden Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie Obst double

Mehr

Theorie zu Übung 8 Implementierung in Java

Theorie zu Übung 8 Implementierung in Java Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept

Mehr

Interfaces und Vererbung

Interfaces und Vererbung Interfaces und Vererbung Einführung in Java Folie 1 von 31 12. Mai 2011 Ivo Kronenberg Inhalt Interfaces Statische und dynamische Typen Visiblitätsmodifier Vererbung Überschreiben von Methoden Konstruktoren

Mehr

Beziehungen zwischen Objekten

Beziehungen zwischen Objekten 1/19 Beziehungen zwischen Objekten Florian Adamsky, B. Sc. (PhD cand.) florian.adamsky@iem.thm.de http://florian.adamsky.it/ cbd Softwareentwicklung im WS 2014/15 2/19 Outline 1 Vererbung (Wiederholung)

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

Universität Karlsruhe (TH)

Universität Karlsruhe (TH) Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Kapitel 2 Die Definitionsphase Prof. Walter F. Tichy Wo sind wir gerade? Planung Lastenheft (funktionales Modell) Definition (Analyse) Pflichtenheft

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

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

01. Grundprinzipien der Vererbung

01. Grundprinzipien der Vererbung 01. Grundprinzipien der Vererbung 1.1 Grundidee der Vererbung Bei der Analyse eines Problems (z.b. Baukasten) stellt man beispielsweise fest, dass 67 % an Daten/Funktionen immer vorkommen 25 % an Daten/Funktionen

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

Muster in der Software Technik. Grundlegende Konzepte der Software Entwicklung und Objekt Orientierung

Muster in der Software Technik. Grundlegende Konzepte der Software Entwicklung und Objekt Orientierung Muster in der Software Technik Grundlegende Konzepte der Software Entwicklung und Objekt Orientierung Grundlagen für die weitere Vorlesung: Aktivitäten und Prozesse der Software Entwicklung Objektorientierte

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 12: Einführung in UML und Java API Dokumentation Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in UML Sequenzdiagramm Klassendiagramm

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

Java Einführung Klassendefinitionen

Java Einführung Klassendefinitionen Java Einführung Klassendefinitionen Inhalt dieser Einheit Java-Syntax Klassen definieren Objekte instanziieren Instanzvariable deklarieren Klassenvariable deklarieren 2 Klassen definieren In der Problemanalyse

Mehr

Informatik II Übung 6 Gruppe 7

Informatik II Übung 6 Gruppe 7 Informatik II Übung 6 Gruppe 7 Leyna Sadamori leyna.sadamori@inf.ethz.ch DEBRIEFING Übung 5 2 U5A1-4 Im Prinzip alles richtig. Falls am Ende noch Zeit, dann Einsicht in die Best Of s 3 THEORIE Java Vererbung,

Mehr

Informatik I - Programmierung Globalübung Objektorientierung. Objektorientierung Konzepte & Notationen

Informatik I - Programmierung Globalübung Objektorientierung. Objektorientierung Konzepte & Notationen Informatik I - Programmierung Globalübung 2.12.2003 Objektorientierung Konzepte & Notationen Thomas Weiler Fachgruppe Informatik RWTH Aachen T. Weiler, RWTH Aachen - 1 - Objektorientierung Notationen Entwurfsprinzipien

Mehr

8. Generics Grundlagen der Programmierung 1 (Java)

8. Generics Grundlagen der Programmierung 1 (Java) 8. Generics Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 6. Dezember 2005 Einordnung im Kontext der Vorlesung 1.

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

Vorkurs Informatik: Erste Schritte der Programmierung mit C++

Vorkurs Informatik: Erste Schritte der Programmierung mit C++ Vorkurs Informatik WS 14/15 Vorkurs Informatik: Erste Schritte der Programmierung mit C++ Tag 3: Objektorientiere Programmierung 8. Oktober 2014 Vorkurs Informatik WS 14/15 > Einführung Agenda 1 Einführung

Mehr

Abschnitt 15: Unified Modeling Language (UML)

Abschnitt 15: Unified Modeling Language (UML) Abschnitt 15: Unified Modeling Language (UML) 15. Unified Modeling Language (UML) 15.1 Grundlagen 15.2 Klassen und Objekte 15.3 Vererbung 15.4 Schnittstellen 15.5 Generische Typen 15.6 Pakete 15.7 UML

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

Inhalt. Informatik B Objektorientierte Programmierung in Java. Vorlesung 04: Objektorientierte Programmierung (Teil 4) Inhalt.

Inhalt. Informatik B Objektorientierte Programmierung in Java. Vorlesung 04: Objektorientierte Programmierung (Teil 4) Inhalt. Universität Osnabrück 1 Inhalt 3 Objektorientierte Programmierung in Java Interfaces Definition Verwendung Implementierung mehrerer Interfaces Vorlesung 04: Objektorientierte Programmierung (Teil 4) Konstanten

Mehr

Einführung in die. objektorientierte Programmierung

Einführung in die. objektorientierte Programmierung Einführung in die objektorientierte Programmierung Teil 3 Vererbung Modul WI111: Objektorientierte Programmierung Fachrichtung Wirtschaftsinformatik Prof. Dr. Gert Faustmann Fachbereich Berufsakademie

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

Vererbung. Martin Wirsing. Ziele. Vererbung

Vererbung. Martin Wirsing. Ziele. Vererbung 2 Ziele Martin Wirsing en Begriff der einfachen verstehen und Redefinition von Oberklassenmethoden verstehen spolymorphie verstehen ie Klasse Object kennenlernen in Zusammenarbeit mit Michael Barth, Philipp

Mehr

Kapitel 1 - Widerholungsfragen

Kapitel 1 - Widerholungsfragen Kapitel 1 - Widerholungsfragen 1. Erklären Sie folgende Begriffe: Objekt Ein Objekt ist eine logische Einheit, bestehend aus zusammengehörigen Variablen und Routinen. Klasse Eine Klasse beschreibt die

Mehr

Software Engineering Klassendiagramme Einführung

Software Engineering Klassendiagramme Einführung Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt

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

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

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

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

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

Algorithmen und Programmierung II

Algorithmen und Programmierung II Algorithmen und Programmierung II Vererbung Prof. Dr. Margarita Esponda SS 2012 1 Imperative Grundbestandteile Parameterübergabe String-Klasse Array-Klasse Konzepte objektorientierter Programmierung Vererbung

Mehr

Kompetent objektorientiert programmieren

Kompetent objektorientiert programmieren Kompetent objektorientiert programmieren Aegidius Plüss, Bern, www.aplu.ch Eine objektorientierte Programmiersprache steht auf drei fundamentalen Säulen: Klassenkapselung (encapsulation) Vererbung (inheritance)

Mehr

Informatik II Prüfungsvorbereitungskurs

Informatik II Prüfungsvorbereitungskurs Informatik II Prüfungsvorbereitungskurs Tag 2, 21.6.2016 Giuseppe Accaputo g@accaputo.ch 1 Themenübersicht 20.3: Java 21.3: Objektorientierte Programmierung 22.3: Dynamische Datenstrukturen 23.3: Datenbanksysteme

Mehr

B Java RMI B.2 B.4. 1 Java. 1.2 Methoden. 1.1 Objekte (2) 1.1 Objekte. Objektorientierte Sprache. Klassenbeschreibung. Methode ist eine Art Funktion

B Java RMI B.2 B.4. 1 Java. 1.2 Methoden. 1.1 Objekte (2) 1.1 Objekte. Objektorientierte Sprache. Klassenbeschreibung. Methode ist eine Art Funktion 1 Java 1.1 e B Java RMI orientierte Sprache e beschrieben in Klassendefinitionen und andere Datentypen: int, float, boolean, etc. referenzen Verweise auf e keine Zeiger, Adressen o.ä. B.1 B.2 1.1 e (2)

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

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

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

TEIL I: OBJEKTORIENTIERUNG UND GRUNDKURS JAVA GRUNDLAGEN DER PROGRAMMIERUNG... 4

TEIL I: OBJEKTORIENTIERUNG UND GRUNDKURS JAVA GRUNDLAGEN DER PROGRAMMIERUNG... 4 Inhaltsverzeichnis TEIL I: OBJEKTORIENTIERUNG UND GRUNDKURS JAVA... 1 1 GRUNDLAGEN DER PROGRAMMIERUNG... 4 1.1 Das erste Java-Programm... 4 1.2 Programme und ihre Abläufe... 6 1.3 Entwurf mit Nassi-Shneiderman-Diagrammen...

Mehr