Polymorphie

589 Aufrufe

Veröffentlicht am

Slides of a trial lecture about polymorphism held at the University of Applied Sciences.

Veröffentlicht in: Bildung
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
589
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
5
Aktionen
Geteilt
0
Downloads
1
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Polymorphie

  1. 1. Polymorphie in objektorientierten Programmiersprachen Johannes Diemke johannes.diemke@uni-oldenburg.de 27. Februar 2014 Johannes Diemke Polymorphie 27. Februar 2014 1 / 17
  2. 2. Motivation Wir entwickeln ein Hochschulinformationssystem (HIS) Aufgaben eines HIS: Studierendenverwaltung Lehrendenverwaltung Prufungsmanagement Lehrraummanagement . . . Johannes Diemke Polymorphie 27. Februar 2014 2 / 17
  3. 3. Motivation Wir entwickeln ein Hochschulinformationssystem (HIS) Aufgaben eines HIS: Studierendenverwaltung Lehrendenverwaltung Prufungsmanagement Lehrraummanagement . . . Johannes Diemke Polymorphie 27. Februar 2014 2 / 17
  4. 4. Anforderungen Anforderung an das HIS (1. Iteration) In einem ersten Schritt wollen wir ProfessorInnen verwalten: Anlegen neuer ProfessorInnen Ausgeben aller ProfessorInnen Johannes Diemke Polymorphie 27. Februar 2014 3 / 17
  5. 5. Anforderungen Anforderung an das HIS (1. Iteration) In einem ersten Schritt wollen wir ProfessorInnen verwalten: Anlegen neuer ProfessorInnen Ausgeben aller ProfessorInnen Welches objektorientierte Konzept fallt Ihnen fur die Implementierung ein? Fachbereich Name Vorname Johannes Diemke Polymorphie 27. Februar 2014 3 / 17
  6. 6. Anforderungen Anforderung an das HIS (1. Iteration) In einem ersten Schritt wollen wir ProfessorInnen verwalten: Anlegen neuer ProfessorInnen Ausgeben aller ProfessorInnen Welches objektorientierte Konzept fallt Ihnen fur die Implementierung ein? Fachbereich Name Vorname #vorname: String #name: String #fachbereich: String Professor +Professor(vorname: String, nachname: String, fb: String) +setVorname(vorname: String) +getVorname() : String +setName(name: String) +getName() : String +setFachbereich(fb: String) +getFachbereich() : String Johannes Diemke Polymorphie 27. Februar 2014 3 / 17
  7. 7. Klassen in Java Johannes Diemke Polymorphie 27. Februar 2014 4 / 17
  8. 8. HIS in Java Johannes Diemke Polymorphie 27. Februar 2014 5 / 17
  9. 9. HIS in Java Ausgabe Professor[Sheldon Cooper, FB: Theoretische Physik] Professor[Egon Spengler, FB: Parapsychologie] Johannes Diemke Polymorphie 27. Februar 2014 5 / 17
  10. 10. Weitere Anforderungen Anforderung an das HIS (2. Iteration) In einem zweiten Schritt wollen wir zusatzlich StudentInnen verwalten: Anlegen neuer StudentInnen Ausgeben aller StudentInnen und ProfessorInnen Johannes Diemke Polymorphie 27. Februar 2014 6 / 17
  11. 11. Weitere Anforderungen Anforderung an das HIS (2. Iteration) In einem zweiten Schritt wollen wir zusatzlich StudentInnen verwalten: Anlegen neuer StudentInnen Ausgeben aller StudentInnen und ProfessorInnen Was fallt Ihnen auf? Welches objektorientierte Konzept fallt Ihnen ein? Fachbereich Name Vorname MatrikelNr Name Vorname Johannes Diemke Polymorphie 27. Februar 2014 6 / 17
  12. 12. Vererbung (Inheritance) #vorname: String #name: String Person +Person(vorname: String, nachname: String) +setVorname(vorname: String) +getVorname() : String +setName(name: String) +getName() : String Professor #fachbereich: String +Professor(vorname: String, nachname: String, fb: String) +setFachbereich(fb: String) +getFachbereich() : String Student #matrikelNr : String +Student(vorname: String, nachname: String, mn: String) +setMatrikelNr(mn: String) +getMatrikelNr() : String Johannes Diemke Polymorphie 27. Februar 2014 7 / 17
  13. 13. Vererbung (Inheritance) #vorname: String #name: String Person +Person(vorname: String, nachname: String) +setVorname(vorname: String) +getVorname() : String +setName(name: String) +getName() : String Professor #fachbereich: String +Professor(vorname: String, nachname: String, fb: String) +setFachbereich(fb: String) +getFachbereich() : String Student #matrikelNr : String +Student(vorname: String, nachname: String, mn: String) +setMatrikelNr(mn: String) +getMatrikelNr() : String Wie hilft das bei der Programmierung? Johannes Diemke Polymorphie 27. Februar 2014 7 / 17
  14. 14. Vererbung (Inheritance) Kinder erben Methoden und Felder von Elternklasse Vermeidet Wiederholungen (Copy Paste) Erhoht Wartbarkeit Anderungen nur an einer Stelle Methoden konnen in Kindklassen uberschrieben werden Spezialisiertes Verhalten Johannes Diemke Polymorphie 27. Februar 2014 8 / 17
  15. 15. Vererbung (Inheritance) Kinder erben Methoden und Felder von Elternklasse Vermeidet Wiederholungen (Copy Paste) Erhoht Wartbarkeit Anderungen nur an einer Stelle Methoden konnen in Kindklassen uberschrieben werden Spezialisiertes Verhalten Person +toString() : String „is-a“-Beziehung Student +toString() : String Johannes Diemke Polymorphie 27. Februar 2014 8 / 17
  16. 16. Vererbung in Java Johannes Diemke Polymorphie 27. Februar 2014 9 / 17
  17. 17. Vererbung in Java Johannes Diemke Polymorphie 27. Februar 2014 10 / 17
  18. 18. Vererbung in Java Johannes Diemke Polymorphie 27. Februar 2014 11 / 17
  19. 19. HIS in Java (Version 2) Johannes Diemke Polymorphie 27. Februar 2014 12 / 17
  20. 20. HIS in Java (Version 2) Ausgabe Professor[Sheldon Cooper, FB: Theoretische Physik] Professor[Egon Spengler, FB: Paraspychologie] Student[Peter Venkman, MN: 8546120] Johannes Diemke Polymorphie 27. Februar 2014 12 / 17
  21. 21. Polymorphie Person +toString() : String „is-a“-Beziehung Student +toString() : String Vielgestaltigkeit (griechisch: polys " viel, morphe " Form) " Eine Unterklasse (etwas Spezielles) kann eine Oberklasse (etwas Allgemeines) vertreten Automatischer Aufruf der richtigen Methode (spate Bindung) Johannes Diemke Polymorphie 27. Februar 2014 13 / 17
  22. 22. Polymorphie Person +toString() : String „is-a“-Beziehung Student +toString() : String Frage Welche Implementierung von toString() wird aufgerufen? Johannes Diemke Polymorphie 27. Februar 2014 14 / 17
  23. 23. Polymorphie Person +toString() : String „is-a“-Beziehung Student +toString() : String Frage Welche Implementierung von toString() wird aufgerufen? Antwort Die Implementierung aus der Student Klasse. Johannes Diemke Polymorphie 27. Februar 2014 14 / 17
  24. 24. Polymorphie Frage Haben Sie eine Idee wie sich mittels Polymorphie die Ausgabe aller StudentInnen und ProfessorInnen vereinfachen lasst? Johannes Diemke Polymorphie 27. Februar 2014 15 / 17
  25. 25. HIS in Java (Version 3) Johannes Diemke Polymorphie 27. Februar 2014 16 / 17
  26. 26. HIS in Java (Version 3) Ausgabe Professor[Sheldon Cooper, FB: Theoretische Physik] Professor[Egon Spengler, FB: Parapsychologie] Student[Peter Venkman, MN: 8546120] Johannes Diemke Polymorphie 27. Februar 2014 16 / 17
  27. 27. Vielen Dank fur Ihre Aufmerksamkeit! Johannes Diemke Polymorphie 27. Februar 2014 17 / 17

×