Konzepte und Notation der Analyse gelten auch in Entwurf und Implementierung Erweiterung der Konzepte und Notation für den Entwurf
|
|
- Frauke Bach
- vor 7 Jahren
- Abrufe
Transkript
1 1 Vorteil der Objektorientierung Konzepte und Notation der Analyse gelten auch in Entwurf und Implementierung Erweiterung der Konzepte und Notation für den Entwurf Ziel der Analyse OOA-Modell als fachliche Lösung Ziel des Entwurfs OOD-Modell als... technische Lösung Spiegelbild des Programms auf höherem Abstraktionsniveau 2 Inhalt 6.1 Objekt/Klasse 6.2 Attribut 6.3 Operation 6.5 Polymorphismus 6.6 Vererbung 6.7 Szenario 6.8 Zustandsautomat
2 3 6.1 Objekt/Klasse Container-Klasse Verwaltet eine Menge von Objekten einer anderen Klasse Sie stellt Operationen bereit, um auf die verwalteten Objekte zuzugreifen Container = Objekt der Container-Klasse Container-Klassen realisieren die Objektverwaltung Typische Container Felder (arrays) Mengen (sets) Objekt/Klasse Beispiel Container für die Verwaltung von Personen Person Personen Name Alter erstelleliste() OOA OOD erstelleliste() 1 * Person Name Alter :Person :Person :Personen :Person
3 5 6.1 Objekt/Klasse Beispiel Sequenzdiagramm für die Verwaltung von Personen im Container :Personen p: Person erstelleliste() getlink() p getname() getalter() Objekt/Klasse Schnittstelle (interface) Spezifiziert einen Ausschnitt aus dem Verhalten einer Klasse Besteht nur aus Signaturen von Operationen Wird durch Klassen realisiert bzw. implementiert (gestrichelter Vererbungspfeil) Eine Schnittstelle ist äquivalent zu einer Klasse, die keine Attribute und ausschließlich abstrakte Operationen besitzt
4 7 6.1 Objekt/Klasse Schnittstelle in Java Kann Konstanten und abstrakte Operationen enthalten Wird mit dem Schlüsselwort interface deklariert Wird von Klassen mit dem Schlüsselwort implements realisiert interface ClassInfo {public abstract String getclassname();} class MyClass implements ClassInfo {public String getclassname() { return "MyClass"; }...} Attribut Sichtbarkeit Analyse Alle Attribute sind außerhalb der Klasse verborgen, jedoch für ihre Unterklassen sichtbar (protected) Entwurf Differenzierung der Sichtbarkeit (visiblility) public (sichtbar für alle anderen Klassen) protected (sichtbar innerhalb der Klasse und in Unterklassen) private (sichtbar nur innerhalb der Klasse)
5 9 6.2 Attribut Notation Attribut-Sichtbarkeit UML Class + publicattribute # protectedattribute privateattribute (für Operationen entsprechend) Abbildung der Attribute in den Entwurf Kreis Kreis Mittelpunkt Radius istsichtbar OOA OOD # Mittelpunkt # Radius # istsichtbar Attribut Klassenattribut Als Klassenattribut realisieren Als Objektattribut einer separaten Klasse realisieren Diese Klasse besitzt dann nur ein einziges Objekt mit dem Wert des Klassenattributs Abgeleitetes Attribut Als Operation realisieren, die stets den aktuellen Wert ermittelt Als Attribut realisieren (Konsistenzprüfung!)
6 Attribut Klassenattribut in Java Kennzeichnung mittels static Zuweisung eines Anfangswerts durch statische Initialisierung, d.h. wenn die Klasse vom Laufzeitsystem geladen wird class Kreis { static int Anzahl = 0;... } Operation Notation Signatur UML Sichtbarkeit Operation (Parameterliste): Ergebnistyp {Merkmal1, Merkmal2,...} Sichtbarkeit [+ # - ] Parameterliste Art Name: Typ = Anfangswert,..., Art = [ in out inout ] Ergebnistyp Fehlt, wenn die Operation keinen Wert zurückgibt
7 Operation Von der Analyse zum Entwurf Analyse Eintrag von Operationen, die für das Verständnis des Fachkonzepts wichtig sind Entwurf Eintrag aller Operationen, die im Programm enthalten sind (keine Verwaltungsoperationen) Kreis Kreis Mittelpunkt Radius istsichtbar OOA OOD # Mittelpunkt # Radius # istsichtbar zeichnen() verschieben() vergrößern() verkleinern() + zeichnen() loeschen() + verschieben() + vergroessern() + verkleinern() 14 Navigation Analyse Alle Assoziationen inhärent bidirektional Entwurf Festlegung, ob uni- oder bidirektionale Implementierung Navigation der Assoziation (navigability)
8 15 Unidirektionale vs. bidirektionale Assoziation Abteilung Angestellter # Bezeichnung + druckegehaltsliste() 1 unidirektional * # Name # Personalnr # Gehalt + druckegehalt() Abteilung Angestellter # Bezeichnung + druckegehaltsliste() 1 bidirektional * # Name # Personalnr # Gehalt + druckeausweis() + druckegehalt() 16 Notation Navigation UML Richtung der Realisierung einer Assoziation mit Pfeilspitze kennzeichnen Eine Assoziation kann keinen, einen oder zwei Pfeile besitzen Zwei Konventionen: 1 Alle Pfeile eintragen Eine Assoziation ohne Pfeile wird nicht realisiert 2 Nicht alle Pfeile eintragen Keine Pfeile: Assoziation wird in beiden Richtungen realisiert Pfeil: Gibt Richtung der Realisierung an Nur sinnvoll, wenn alle Assoziationen des Diagramms auch realisiert werden
9 17 Kardinalität Im OOD-Modell kann Angabe der Kardinalität auf einer Seite fehlen, wenn in dieser Richtung keine Navigation stattfindet Sie ist in diesem Fall irrelevant Sichtbarkeit Für Assoziationen können in der UML zusätzlich Sichtbarkeiten angegeben werden Analog zu Attributen und Operationen Verwendung von +, #, - Verwendung eines expliziten Schlüsselworts (z.b. {public}) als Präfix des Rollennamens 18 Assoziationen mittels Zeigern realisieren Realisierung jeder Richtung einer Assoziation mittels Zeigern zwischen Objekten Jedes Objekt kennt seine assoziierten Objekte Konsistentes Auf- und Abbauen der Verbindungen durch die Operationen muß sichergestellt werden Kardinalität von 0..1 oder 1 Einzelner Zeiger Kardinalität größer 1 Menge von Zeigern Wenn keine Ordnung definiert ist Verwendung von Container-Klassen wie Set, Bag etc.
10 19 Beispiel Realisierung einer bidirektionale Assoziation mittels Zeigern Abteilung 1 * Angestellter :Abteilung :Angestellter :Abteilung :Angestellter :Abteilung :Angestellter 20 Assoziation mittels Klasse realisieren Realisierung der Assoziation mittels einer eigenen Klasse Wird nicht im Klassendiagramm dargestellt wird Assoziierte Objekte kennen sich nicht direkt Das Wissen, wer mit wem verbunden ist, ist nur in dem Assoziationsobjekt verborgen Sinnvoll, wenn die Assoziation nachträglich hinzugefügt wird soll und die Klassen nicht verändert werden sollen
11 21 Realisierung der bidirektionalen Assoziation mittels Assoziationsobjekt Abteilung 1 * Angestellter Abteilung * Abteilung/ Angestellter * Angestellter :Abteilung :Abteilung/ Angestellter :Angestellter :Abteilung :Angestellter :Abteilung... :Angestellter Assoziationsobjekt 22 ordered-restriktion Verbindungen (links) einer Assoziation sind geordnet Enthält keine Aussage über die Art der Ordnung sorted-restriktion Ordnungskriterium sind die Elementwerte Z.B. Sortierung aller Kundenobjekte nach Kundennummer Realisierung von ordered- und sorted- Restriktionen Verwendung einer Container-Klasse, die Ordnung ihrer Elemente ermöglicht (z.b. Array, Vector)
12 23 class Abteilung {protected: VectorBag <Angestellter> Mitarbeiter; public: void link (Angestellter* ang) { Mitarbeiter.addElement (ang); } void unlink (Angestellter* ang) { Mitarbeiter.delElement (ang); } int getlink(angestellter* &ang, int pos) { ang = Mitarbeiter.getElement (pos); } }; 24 Assoziation in Java (Kardinalität <= 1) class Angestellter { protected Abteilung arbeitetin; public void link (Abteilung abt) { arbeitetin = abt; } public void unlink (Abteilung abt) {... arbeitetin = null; } public Abteilung getlink() { return arbeitetin ; } }
13 25 Assoziation in Java (Kardinalität > 1) Klasse Vector verwenden class Abteilung { protected Vector Mitarbeiter; public void link (Angestellter ang) { Mitarbeiter.addElement (ang); } void unlink (Angestellter ang) { Mitarbeiter.removeElement (ang); } Angestellter getlink (int pos) { return (Angestellter)Mitarbeiter.elementAt(pos); } } 26 Aufgabe OOA-Klassendiagramm in Entwurf abbilden und die Objektverwaltung realisieren Erstellen Sie ein OOD-Klassendiagramm Student Firma Matrikelnummer Name Immatrikulation Vordiplom Anzahl * Praktikant 0..1 Name Ort Branche immatrikulieren() druckev ordiplomliste() anmeldenpraktikum()
14 Polymorphismus Definition Polymorphismus (polymorphism) Möglichkeit, den gleichen Namen für gleichartige Operationen zu verwenden, die auf Objekten verschiedener Klassen auszuführen sind Der Sender muß nur wissen, daß ein Empfängerobjekt das gewünschte Verhalten besitzt aber nicht, zu welcher Klasse das Objekt gehört Gegenteil von Polymorphismus: Monomorphismus In allen Programmiersprachen vorhanden, die sowohl eine strenge Typisierung als auch eine frühe Bindung besitzen Polymorphismus Beispiel Deklaration des Zeigers pgrafik Grafikobjekt* pgrafik Operationsaufruf Grafik->zeichnen() besitzt unterschiedliche Wirkungsweisen pgrafik=new Rechteck; Rechteck.zeichnen(); Grafikobjekt # Mittelpunkt # istsichtbar + zeichnen() pgrafik = new Kreis; Kreis.zeichnen() Kreis # Radius + zeichnen() Rechteck # Laenge # Breite + zeichnen()
15 Polymorphismus Polymorphismus macht switch-anweisungen, wo entsprechend dem Objekttyp eine Aktion ausgelöst wird, überflüssig Beispiel enum Grafikart {istrechteck, istkreis}; void zeichnengrafik (Grafik Grafikdaten) switch (Grafikdaten.Art) { case istrechteck: zeichnenrechteck(grafikdaten);break; case istkreis: zeichnenkreis(grafikdaten); break; }; Polymorphismus Überladen (overloading) Verwendung von Operationen mit demselben Namen jedoch unterschiedlicher Semantik und Implementierung für Objekte verschiedener Klassen fi 7»alpha«+»bet«fi»alphabet«Coercion Sprachen, die diese Form unterstützen, erlauben bestimmte Typumwandlungen Beispiel: Addition für reelle Zahlen Bei Verwendung einer ganzen und einer reellen Zahl, wird die ganze Zahl automatisch in eine reelle umgewandelt
16 Polymorphismus Inklusionsbasierter Polymorphismus a. Vererbungsgebundener Polymorphismus, inclusion polymorphism b. Eine Funktion, die für einen bestimmten Typ definiert ist, kann auch mit jedem Untertyp dieses Typs arbeiten c. Erzwingt die Definition von Klassen, die lediglich als Schnittstellen für abgeleitete Klassen dienen Vererbung Vererbung der Sichtbarkeit in Java a. Sichtbarkeit der Oberklasse bleibt stets erhalten Mehrfachvererbung in Java Nicht für Klassen, nur für Schnittstellen class B1 {... } interface B2 {...} interface B3 {...} class D extends B1 implements B2, B3 {...}
17 Szenario Sequenzdiagramm Verzweigung des Kontrollflusses Zusammenfassung mehrerer Abläufe in einem Sequenzdiagramm Reduzierung der Anzahl der Diagramme Entstehung von unübersichtlichen Diagrammen Operationen des Sequenzdiagramms entsprechen den Operationen des zugehörigen Java-Programms Angabe der gestrichelten Rückgabepfeile im Entwurf, wenn es zur Verständlichkeit des Diagramms notwendig ist Optional mit Ergebnisparameter beschriften Szenario Notation Sequenzdiagramm UML :C3 :C4 op() :C1 [x > 0] op1(x) :C2 [x < 0] op2(x) *[i = 1..10] op3(i) op4(z) r op5()
18 Zustandsautomat Modellierung der Benutzungsoberfläche nicht selektiert selektiert LB RB RB bearbeitend entry/ anzeige Menü Bearbeiten LBD RBD verschiebbar kopierbar exit/ anzeige Menü Kopieren LB : left (mouse) button RB : right (mouse) button LBD : left (mouse) button down RBD: right (mouse) button down Zustandsautomat Lebenszyklus Einfache Realisierung mit Zustandsattribut Einfache Realisierung mit ereignis-interpretierender Operation Realisierung komplexer Objekt-Lebenszyklen mittels Zustandsmuster
19 Zustandsautomat Einfache Realisierung mit Zustandsattribut Klasse erhält private-attribut classstate Speichert den aktuellen Zustand des Objekts Jede Operation, die im Lebenszyklus aufgeführt ist, muß dieses Attribut abfragen Aktualisierung von classstate, wenn mit der Operation ein Zustandswechsel verbunden ist Einfache Realisierung mit Operation Klasse, die einen Objekt-Lebenszyklus besitzt, stellt eine ereignis-interpretierende Operation zur Verfügung Interpretation eintreffender Ereignisse Auslösung der entsprechende Verarbeitung Zustandsautomat Zustandsmuster (state pattern) OOA-Klasse bearbeiten() Zustand1 Ereignis wenn Zustand1 dann bearbeiten1 wenn Zustand2 dann bearbeiten2 Zustand2 bearbeiten / bearbeiten() Zustand3 bearbeiten/ bearbeiten() OOD-Klasse + bearbeiten() aktueller Zustand 1 Zustand + bearbeiten() aktuellerzustand > bearbeiten() Zustand1 + bearbeiten() Zustand2 + bearbeiten() Zustand3 + bearbeiten() bearbeiten1 bearbeiten2 keinewirkung
20 Zustandsautomat Zustandsmuster Vorteile Kapselung des kompletten Verhaltens eines Zustands in einer Klasse Leichtes Hinzufügen neuer Zustände und Zustandsübergänge Nachteil Erhöhung der Anzahl der Klassen Zustandsautomat Zustandsautomat in Java Einfache Realisierung Kein benutzerdefinierbarer Aufzählungstyp Definition der Zustände als Integer-Konstanten class Schublade { final static int OFFEN = 1; final static int ZU_UNVERSCHLOSSEN= 2; final static int ZU_VERSCHLOSSEN= 3; private int classstate; public void oeffnen() { if (classstate == ZU_UNVERSCHLOSSEN) classstate = OFFEN;...} }
21 41 Aufgabe Anwenden des Zustandsmusters Buch defekt / entfernen() Ausleihwunsch / ausleihen() Buch verloren / entfernen() Ausleihwunsch / vorbestellen() präsent ausgeliehen neues Buch liegt vor / erfassen() after(abholfrist vorbei) Leser gibt Buch zurück / zurückgeben() Leser holt Buch ab / ausleihen() zur Abholung bereit Buch erfassen() ausleihen() zurückgeben() vorbestellen() entfernen() vorbestellt Leser gibt Buch zurück / zurückgeben()
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
MehrSoftware Entwicklung 2. UML im Entwurf
Software Entwicklung 2 UML im Entwurf Inhalt UML im Entwurf Objekt/Klasse Attribut Operation Assoziation Polymorphismus Vererbung Pakete Szenario Zustandsautomat 2 Lernziele Die Unterschiede zwischen der
MehrObjektorientierter Entwurf (OOD) OOD Klassendiagramm
OOD Klassendiagramm Erweiterung des OOA-Modells und Anpassung an die Zielsprache: 1. Anpassung der Namen im Hinblick auf die Zielsprache 2. Konsequenter Einsatz der Stereotyp-Bezeichnungen:
MehrNeben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter
Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener
MehrKapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen
Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18
MehrUniversitä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
MehrObjektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 5 12.04.2017 Was bisher geschah... Objektorientierte Programmierung Klassen und Objekte, Attribute
MehrObjektorientierter Entwurf
Objektorientierter Entwurf Udo Kelter 04.10.2003 Zusammenfassung dieses Lehrmoduls Dieses Lehrmodul stellt grundlegende Konzepte des objektorientierten Entwurfs vor. Wir gehen insb. auf die Darstellung
MehrEinstieg in die Informatik mit Java
1 / 13 Einstieg in die Informatik mit Java Schnittstellen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 13 1 Einführung 2 Definition einer Schnittstelle 3 Implementierung
MehrSoftware 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
MehrProgrammieren in Java
Einführung in die Objektorientierung Teil 4 Interfaces, innere Klassen und Polymorphie 2 Vererbung im Klassendiagram (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Ware
MehrAbgabe: keine Pflichtabgabe (vor 12 Uhr) Aufgabe 10.1 (P) Vererbung Gegeben seien folgende Java-Klassen:
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2011 Einführung in die Informatik I Übungsblatt 10 Prof. Dr. Helmut Seidl, A. Lehmann, A. Herz,
MehrKapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz
Kapitel 13 Abstrakte Methoden und Interfaces 13. Abstrakte Klassen und Interfaces 1. Abstrakte Klassen 2. Interfaces und Mehrfachvererbung Folie 12.2 Abstrakte Methoden und Klassen Manchmal macht es überhaupt
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Objektorientierung in C++ (3) Aspekte der Vererbung (1) Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 546 Zuweisung bei Vererbung Dr. Frank Seifert Vorlesung
Mehr14. Java Objektorientierung
Objektorientierung: Verschiedene Aspekte Daten Typhierarchie Objekte 14. Java Objektorientierung Code Vererbung Unter- und Oberklassen Klassen, Vererbung, Kapselung Methoden überschreiben Unterklassen
MehrProgrammieren II. Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz Institut für Angewandte Informatik
Programmieren II Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz 9.6 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Abstrakte Klassen: Motivation Grundidee abstrakter Klassen:
MehrHSR Rapperswil 2001 Markus Rigling. Programmieren: Vererbung. 1 Variante 2
HSR Rapperswil 2001 Markus Rigling Programmieren: Vererbung 1 Variante 2 Inhaltsverzeichnis: 1. Was ist Vererbung...3 2. Anwendung...3 3. Realisierung...3 4. Vorgehensweise zur Erstellung einer Kind-Klasse...3
Mehr1 Abstrakte Klassen, finale Klassen und Interfaces
1 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
Mehr15 Unified Modeling Language (UML) 7 UML und Java Informatik 2 (SS 07) 595
Überblick 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 und Java 15.8 Zusammenfassung 15 Unified
Mehr14 Abstrakte Klassen, finale Klassen, Interfaces
Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse
MehrKonzepte der Programmiersprachen
Konzepte der Programmiersprachen Sommersemester 2010 4. Übungsblatt Besprechung am 9. Juli 2010 http://www.iste.uni-stuttgart.de/ps/lehre/ss2010/v_konzepte/ Aufgabe 4.1: Klassen in C ++ Das folgende C
MehrUML -Klassendiagramme
UML -Klassendiagramme UML - offline: ArgoUML http://argouml.stage.tigris.org/ UML online: Links genmymodel.com umlet.com/umletino/umletino.html Arten von UML-Diagrammen Diagramm Strukturdiagramm Verhaltensdiagramm
Mehr3 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
Mehr14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen
Auswertung von Ausdrücken Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt.
MehrSommersemester Implementierung I: Struktur
Sommersemester 2003 Implementierung I: Struktur 2 Aufgabe 3 Implementierung I: Struktur Umfang: 1 Woche Punkte: 50 P. In den ersten beiden Aufgaben wurden die Struktur und das Verhalten des Systems modelliert.
Mehr2. Vererbung und Kapselung
2. Vererbung und Kapselung Die Objekte der Klasse BALL werden im Gegensatz zu den Objekten von KREIS noch nicht graphisch dargestellt. Um die BALL-Objekte auch graphisch darzustellen zu können, muss BALL
Mehr7. 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
MehrWeitere Beispiele. Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts. 7. Schnittstellen. Schnittstelle: Syntax
Weitere Beispiele Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts public interface Funktion { boolean istimdefbereich(double x); double wert(double x); String gibbeschreibung(); public interface
MehrSoftware Engineering, SoSe 07, WSI, D. Huson, May 7,
Software Engineering, SoSe 07, WSI, D. Huson, May 7, 2007 17 4 Modellierung in UML Nach einer Vorlesung von Prof. Andreas Zeller, Lehrstuhl Softwaretechnik Universität des Saarlandes, Saarbrücken. 4.1
MehrTafelübung 07 Algorithmen und Datenstrukturen
Tafelübung 07 Algorithmen und Datenstrukturen Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Vererbung Grundlagen Abstrakte
MehrBeispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung
Beispiele für Ausdrücke Der imperative Kern Deklarationen mit Initialisierung Variablendeklarationen int i = 10; int j = 15; Beispiele für Ausdrücke i+j i++ i & j i j [] [static]
MehrProgrammierkurs Java
Programmierkurs Java Abstrakte Klassen und Methoden & Interfaces Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie
MehrObjektorientierung. Objekte
Eine Einführung G. Futschek Objekte Objekte Fragen: Wie unterscheiden sich Objekte? Wie sind Objekte einander ähnlich? Was können Objekte? Wie stehen Objekte zueinander in Beziehung? Objekte Im täglichen
MehrObjektorientierte Analyse (OOA) Strukturmodellierung
Strukturmodellierung Seite 1 Strukturmodellierung Seite 2 Anwendung im Projekt Strukturmodellierung Voraussetzung: Use Case Diagramm liefert die funktionelle Gliederung mit Angabe der Ein- und Ausgaben
MehrVererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus
Vererbung Generalisierung und Spezialisierung Vererbung und Polymorphismus Wir wollen in unserem Aquarium verschiedene Arten von Fischen schwimmen lassen. In einem ersten Ansatz definieren wir nicht nur
MehrUniversität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 08. Oktober Klausur II
Universität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 08. Oktober 2001 Stefan Holland Informatik II Hinweise: Klausur II Verwenden Sie für Ihre Lösungen ausschließlich
MehrJava Einführung Vererbung und Polymorphie. Kapitel 13
Java Einführung Vererbung und Polymorphie Kapitel 13 Inhalt Klassifikation (UML) Implementierung von Vererbungshierarchien Überschreiben von Methoden Polymorphismus: Up-Casting und Dynamisches Binden Schlüsselwort
MehrGliederung der Folien
1 Gliederung der Folien 1. Einführung 1.1. Gliederung 1.2. Literatur 1.3. Einstieg in Java 1.3.1. Geschichte von Java 1.3.2. Hello World 1.3.3. Übersetzen eines Java-Programms 1.4. Die Entwicklungsumgebung
MehrJava für Bauingenieure
1 JAVA für Bauingenieure Alexander Karakas SS 2008 Objektorientierte Programmierung 30.04.2008, CIP Pool Objektorientierte Programmierung Übersicht 2 Klasse und Objekt Polymorphismus und Vererbung Klassen
MehrUNIVERSITÄT SIEGEN Fachbereich 12, Elektrotechnik und Informatik Fachgruppe Betriebssysteme / verteilte Systeme
UNIVERSITÄT SIEGEN Fachbereich 12, Elektrotechnik und Informatik Fachgruppe Betriebssysteme / verteilte Systeme Musterklausur zur Einführung in die Informatik II 1. Teilklausur, 23.06.2006 Bitte lesen
MehrProf. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Objektorientierung
Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Objektorientierung Was ist Objektorientierung Es einige Grundprinzipien, die (fast) allen Definitionen des Begriffs Objektorientierung
MehrProgrammiertechnik Objektorientierung
Programmiertechnik Objektorientierung Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Was ist Objekt-Orientierung? Objekt-Orientierung (OO) ist nicht völlig scharf definiert, d.h. es gibt unterschiedliche
MehrProgrammiersprache 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
MehrJavakurs 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
MehrEinführung in die Programmiersprache Java II
Einführung in die Programmiersprache Java II ??????????? UML OOP "Object oriented programming is bad" - professional retard 90s... UML Entwicklungsziele verschiedenen existierenden objektorienten Modellierungsmethoden
MehrÜ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
MehrAufgabe 1: Strukturmodellierung mittels Klassendiagramm Wiederholen Sie das Kapitel aus der Vorlesung, das sich mit dem Klassendiagramm beschäftigt.
Aufgabe 1: Strukturmodellierung mittels Klassendiagramm Wiederholen Sie das Kapitel aus der Vorlesung, das sich mit dem Klassendiagramm beschäftigt. Was ist eine Klasse? Was ist ein Objekt? Geben Sie ein
MehrFH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0
9 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Wiederholung: Gerüstbeispiel Ein Duo, Quarto oder Sexto ist ein Gerüst. Die Klassen Duo, Quarto und Sexto sollen durch Vererbung
MehrSoftwaretechnik SS 2006
Softwaretechnik SS 2006 6. Vorlesungseinheit Prof. Dr. Urs Andelfinger Darmstadt, 15. Mai 2006 Softwaretechnik (SWT) Vorlesung und Praktikum SS 2006 Inhaltsübersicht SW-Management SW-Entwicklung SW-Qualitätsmgmt.
MehrVorlesung Informatik II
Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 12. UML GUI-Schicht 1 GUI-Schicht Sichtbarmachen
Mehr1. Abstrakte Klassen
1. Abstrakte Klassen Lernziele 1. Abstrakte Klassen Lernziele: Das Konzept abstrakter Klassen und abstrakter Methoden kennen und verstehen, in der Lage sein, abstrakte Klassen und Methoden in Java zu formulieren,
MehrTeil 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
MehrProgrammierkurs 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
MehrPRÜFUNG. Grundlagen der Softwaretechnik
Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner PRÜFUNG Grundlagen der Softwaretechnik Name: Matrikelnummer: Note: Prüfungstag: 03.03.2011 Prüfungsdauer:
MehrAnalyse und Modellierung von Informationssystemen
Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2014/2015 1 / 32 Schablonen (templates) UML: Zustandsdiagramme Zustandsmuster Interpreter 2 / 32
MehrTU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Übung zur Vorlesung Einführung in die Informatik 2 für Ingenieure (MSE) Alexander van Renen (renen@in.tum.de)
MehrTag 8 Repetitorium Informatik (Java)
Tag 8 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium
MehrAnalyse und Modellierung von Informationssystemen
Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2014/2015 1 / 32 Schablonen (templates) UML: Zustandsdiagramme Zustandsmuster Interpreter 2 / 32
MehrAlgorithmen und Datenstrukturen 06
31. Mai 2012 1 Besprechung Blatt 5 Fragen 2 Objektorientierte Programmierung Allgemein Sichtbarkeit Konstanten 3 Unified Modeling Language (UML) Klassendiagramme Anwendungsfalldiagramme 4 Vorbereitung
MehrObjektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 2 22.03.2017 Was bisher geschah... Klassen und Objekte Attribute und Methoden Klasse Bruch
MehrEinstieg in die Informatik mit Java
1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren
MehrVon der UML nach C++
22 Von der UML nach C++ Dieses Kapitel behandelt die folgenden Themen: Vererbung Interfaces Assoziationen Multiplizität Aggregation Komposition Die Unified Modeling Language (UML) ist eine weit verbreitete
MehrEinführung in C# Teil 3. Matthias Nübling
Einführung in C# Teil 3 Matthias Nübling Vorausgesetzte Grundkenntnisse Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus,
MehrSystemanalyse. - Folien zur Vorlesung für AI3 im Sommersemester Teil 5 -
Systemanalyse - Folien zur Vorlesung für AI3 im Sommersemester 2010 - -Teil 5 - Hans-Jürgen Steffens (by courtesy of Prof. Dr. Thomas Allweyer) Fachbereich Informatik und Mikrosystemtechnik Fachhochschule
MehrObjektorientierte und Funktionale Programmierung
Objektorientierte und Funktionale Programmierung SS 2013 3 Objektorientierter Entwurf mit UML und Java Wissensbassierte Systeme / Wissensmanagement Objektorientierte und Funktionale Programmierung Prüfungstermine
MehrHeute. Nachbetrachtung Wissensüberprüfung. Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12.
Heute Nachbetrachtung Wissensüberprüfung Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12.2015 IT I - VO 9 1 Organisatorisches Zwischentest findet am 16.12. von 17:30 bis
MehrÜ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
MehrVererbung, Polymorphismus
Vererbung, Polymorphismus INE2 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? Automobilbau Firma produziert Limousine Kunde möchte Kombi Wielösen? Möglichkeiten Neudesign
MehrProgrammiermethodik 1. Klausur
Programmiermethodik 1. Klausur 27. 6. 2013 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 21 2 20 3 19 4 19 5 21 6 20 Gesamt 120 1 Seite 2 von 18 Aufgabe 1) Objekt-Orientierung und Vererbung
MehrAlgorithmen und Programmierung III WS 05/06
Algorithmen und Programmierung III WS 05/06 Übungsblatt 4 - Abgabe vor der Vorlesung 15.11.05 Aufgabe 0 (Wiederholung) [Optional] Ausnahmen (throw, catch, finally, throws, Behandlung, Laufzeitausnahmen,
MehrVorausgesetzte Grundkenntnisse. Inhalt. Klassenhierarchie und Vererbung. Vererbung. Klassenhierarchie und Vererbung. Einführung in C# Teil 3
Vorausgesetzte Grundkenntnisse Einführung in C# Teil 3 Matthias Nübling Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus,
MehrInfo B VL 8: Abstrakte Klassen & Interfaces
Info B VL 8: Abstrakte Klassen & Interfaces Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 8: Abstrakte
MehrObjektorientierte und Funktionale Programmierung
Objektorientierte und Funktionale Programmierung SS 2013 3 Objektorientierter Entwurf mit UML und Java Wissensbassierte Systeme / Wissensmanagement Objektorientierteund FunktionaleProgrammierung PrüfungstermineOFP
Mehr3. 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
MehrKlassen und ihre Beziehungen III: Mehrfache Vererbung, Rollen, Schnittstellen und Pakete
2 Klassen und ihre Beziehungen III: Mehrfache Vererbung, Rollen, und Pakete Martin Wirsing Ziele Den Begriff der einfachen und mehrfachen Vererbung verstehen Verstehen, wann Vererbung eingesetzt wird deklarationen
MehrRepetitorium 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
Mehr7. 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
Mehr12 Abstrakte Klassen, finale Klassen und Interfaces
12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
MehrVererbung. Oberklassen und Unterklassen
Vererbung Oberklassen und Unterklassen Vererbung ist ein zentrale Bestandteil der Objektorientierung. Man beschreibt damit die Möglichkeit, Eigenschaften und Methoden vorhandener Klassen auf andere (neue)
MehrProgrammieren 2 Java Überblick
Programmieren 2 Java Überblick 1 Klassen und Objekte 2 Vererbung 4 Innere Klassen 5 Exceptions 6 Funktionsbibliothek 7 Datenstrukturen und Algorithmen 8 Ein-/Ausgabe 9 Graphische Benutzeroberflächen 10
MehrAlgorithmen 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
MehrPrä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.
MehrEinfache Datentypen in JAVA
5.4.1. Einfache Datentypen in JAVA Ganzzahlige Datentypen byte 8 bits -128
Mehr4. Vererbung Die Klasse Object. Die Klasse Object
4. Vererbung Die Klasse Object Die Klasse Object Alle Klassen ohne explizit deklarierte Superklasse haben die Klasse Object als Superklasse. Object gehört zum Paket java.lang. Object verfügt über einige
MehrGrundzü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
MehrVererbung. CoMa-Übung XI TU Berlin. CoMa-Übung XI (TU Berlin) Vererbung / 47
Vererbung CoMa-Übung XI TU Berlin 16.01.2013 CoMa-Übung XI (TU Berlin) Vererbung 16.01.2013 1 / 47 Themen der Übung Themen heute Evaluation Rücksprachen IDEs Eclipse & Netbeans Packages, innere Klassen
MehrKapitel 5: Interfaces
Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 5: Interfaces Folie 82 : Einleitung Betrachtet man die Programmierleistung für ein Produkt über einen längeren Zeitraum,
MehrObjektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)
Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester
MehrFAKULTÄT FÜR INFORMATIK
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen WS 2007/2008 Praktikum Grundlagen der Programmierung Lösungsvorschläge zu Blatt 8 F. Forster, T.
MehrAbstrakte Klassen, Interface. DVG Abstrakte Klassen, Interface
Abstrakte Klassen, Interface Beispiel: Vögel Definition von Klassen enthält Abstraktion von den konkreten Objekten. Z.B.: Klasse: Vogel Kann ein Objekt der Klasse Vogel instanziiert werden? Nein, es gibt
MehrProgrammieren II. Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz Institut für Angewandte Informatik
Programmieren II Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz 9.6 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Abstrakte Klassen: Motivation Prinzip der Vererbung: Aus
MehrAnwendungsentwicklung 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,
MehrInstitut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen
MehrEinstieg 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
MehrJavakurs 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
Mehr3. Klassen Statische Komponenten einer Klasse. Klassenvariablen
Klassenvariablen Wir wollen die Zahl der instantiierten Studentenobjekte zählen. Dies ist jedoch keine Eigenschaft eines einzelnen Objektes. Vielmehr gehört die Eigenschaft zu der Gesamtheit aller Studentenobjekte.
MehrEine 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,
MehrUnified Modelling Language
Unified Modelling Language SEP 72 Software-Entwicklung Software-Entwicklung ist Prozess von Anforderung über Modellierungen zu fertigen Programmen Anforderungen oft informell gegeben fertige Programme
MehrProgrammiermethodik 3. Klausur Lösung
Programmiermethodik 3. Klausur Lösung 9. 1. 2014 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 20 2 16 3 45 4 19 5 20 Gesamt 120 1 Seite 2 von 10 Aufgabe 1) Objekt-Orientierung und Vererbung
MehrTh. Letschert OOP 2 2. Geheimnisprinzip und Sichtbarkeitsbeziehungen
Th. Letschert OOP 2 2. Geheimnisprinzip und Sichtbarkeitsbeziehungen Th Letschert FH Gießen-Friedberg Th. Letschert OOP 2 Sichtbarkeitsbeziehungen und Geheimnisprinzip Sichtbarkeitsbeziehungen realisieren
Mehr