Objektorientierte Vererbung

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

der Universität Oldenburg
PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.
Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik Verteilte Software - Java -
Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik Verteilte Software - Java -
FH-Hof Fehlerbehandlung Richard Göbel. FH-Hof Konzept Fehler können mit dem Operator throw einer übergeordneten Funktion signalisiert werden. Parameter.
IF-ELSE-IF-Ketten Weiter mit PP..
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (13 – Offenes Hashing) Prof. Th. Ottmann.
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 4. Methodenentwurf Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse von.
Programmiermethodik SS 07 Prof. Albert Zündorf
Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 1 Gliederung 1. Einführung 2. Objektdiagramme zur Analyse von Beispielen 3. Methodenentwurf.
3. Klassendiagramme in Java implementieren
3. Analyse Gliederung: Einführung Anforderungsdefinition
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 GUI Konstruktion: 1. Entwurf mit Papier und Bleistift / Post Ist 2. Eventuell.
4. Design Gliederung: Einführung Anforderungsdefinition Analyse Design
Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1 6. Tipps, Tricks, Idiome Gliederung: 1. Einführung 2. Anforderungsdefinition 3.
Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1 Objektorientierte Vererbung Student erbt von Person: extensional: Menge der Studenten.
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1 4. Design Gliederung: 1. Einführung 2. Anforderungsdefinition 3. Analyse 4. Design.
Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1 4. Design Gliederung: 1. Einführung 2. Anforderungsdefinition 3. Analyse 4. Design.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 Model View Controller Pattern.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Baustein- vs. Funktionsorientierte Organisation.
Model Driven Engineering SS 10 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee Kassel (Raum 1339)
Model Driven Engineering SS 10 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee Kassel (Raum 1339)
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 4. Methodenentwurf Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse von.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Compilerbau und Reverse Engineering m Vorlesung im Wintersemester.
Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 1 Gliederung 1. Einführung 2. Objektdiagramme zur Analyse von Beispielen 3. Methodenentwurf.
Design Pattern SS 10 Prof. Albert Zündorf
Programmiermethodik SS2010 © 2010 Albert Zündorf, University of Kassel 1 Gesamtvorgehen 1. Textuelle Szenarios 2. Objektdiagramme 3. Klassendiagramm 4.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Baustein- vs. funktionsorientierte Organisation.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Baustein- vs. Funktionsorientierte Organisation.
Verzweigung.
Vererbung Einfache Vererbung – Erben von abstrakten Klassen – Implementieren eines Interfaces.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Compilerbau und Reverse Engineering m Vorlesung im Wintersemester.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Client Architecture Data Model GUI KI Socket Connection.
Model Driven Engineering SS 10 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee Kassel (Raum 1339)
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 4. Methodenentwurf Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse von.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Rekursive Funktionen (Fakultät)
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lektion 14: Mehrfachvererbung.
Automated Software Testing
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
CuP - Java Zwölfte Vorlesung Klassen – Komposition und Vererbung Freitag, 15. November 2002.
Programmierung von Agenten in Java: Implementierung einer Supply-Chain
Programmiervorkurs WS 2014/15 Methoden
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Design Pattern SS 15 Prof. Albert Zündorf
Controller Werkstatt updaten Werkstatt ws = werkstattarray.get(werkstattId); ws.setName(name); ws.setAnsprechpartner(ansprechpartner); ws.setTelefonnummer(telefonnummer);
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
Objektorientierung Gliederung von Daten und Funktionen zu Objekten
Vererbung.
JAVA lernen: Methoden.
Zwei Denkansätze zur Klasse Schlange
Allgemeine Befehle für die allgemeine Liste
Raphael Fischer Informatik II - Übung 06 Raphael Fischer
Cäsar-Verschlüsselung
Grundkurs Informatik mit Java
Schleifen mit der Turtle
Algorithmen und Programmierung III
Cäsar-Verschlüsselung
9. Vererbung und Polymorphie
Programmiermethodik Übung 11
Kara: act()-Methode.
Programmentwurf: Beispiel auf Anwendungsebene anschauen
 Präsentation transkript:

Objektorientierte Vererbung Person haarfarbe :String Student erbt von Person: extensional: Menge der Studenten ist Teilmenge der Personen Typsicht: Person p = new Student (); ist zuweisungskompatibel. Substituierbarkeit: Studenten haben alle Eigenschaften von Personen Student matNr :Integer Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel

Polymorphie durch Methodenredefinition: Person haarfarbe :String payLunch () Prof topic :String payLunch () Student matNr :Integer payLunch () Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel

Mehrfachvererbung Person haarfarbe :String payLunch () Prof Student topic :String payLunch () Student matNr :Integer payLunch () Zwitter Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel

Caveats: Person Attributüberdeckung Student Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel

Caveats: Person Methodenredefinition und Parameter Student Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel

Caveats: Person Initialisierung Student Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel

Caveats: Person Student Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel

Klassische Streitfragen Rechteck Quadrat Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel

Wann Vererbung verwenden? im Zweifel gar nicht Auslagern gemeinsamer Eigenschaften Design Pattern Libraries / Frameworks Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel

Wann Vererbung verwenden? im Zweifel gar nicht Auslagern gemeinsamer Eigenschaften Design Pattern Libraries / Frameworks Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel

Strategy Pattern ersetze if-then-else-if Ketten Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel

If-then-else-if Kette: House run () ring () mode : int Struktur Verhalten Daten public void ring () { if (mode == SIRENE) { …} else if (mode == FLASH) { …} else if (mode == MAIL) { …} … Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel

Strategy Pattern: alarm :House :FlashLight class House { ring () Alarm ring () alarm FlashLight ring () Sirene ring () MailAlarm ring () Struktur Verhalten Daten :House :FlashLight class House { public void ring () { alarm.ring (); } :Sirene :MailAlarm Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel

Strategy Pattern: alarm :House :FlashLight :Sirene :MailAlarm House ring () Alarm ring () alarm FlashLight ring () Sirene ring () MailAlarm ring () Struktur Verhalten Daten :House :FlashLight :Sirene :MailAlarm Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel

Strategy Pattern: Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel

Wann Vererbung verwenden? Fazit: Vererbung zur Strukturierung von Daten eher selten Hauptsächlich Strukturierung von Programmen Verwendung bei großen Programmen Bibliotheks-Komponenten Rahmenwerken Vorlesungen: Software Engineering 1 und Software Engineering 2 Design Pattern Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel

Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel