Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Grundlagen der Programmierung: Objektorientiertes Design

Interfaces implementieren

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Ein Interface beinhaltet verschiedene Funktionen, welche innerhalb einer bestehenden Klasse implementiert werden müssen. Hierbei stellt die Klasse einem Interface bestimmte Schnittstellen zur Verfügung.

Transkript

Verwandt mit der Idee der Vererbung ist ein weiteres Konzept in der objektorientierten Programmierung, und das heißt Interfaces. Schauen wir uns mal an, was diese Interfaces eigentlich sind. Am leichtesten ist es, wenn wir zunächst einmal ein Blick auf den Code werfen. So ein Interface erzeuge ich zum Beispiel in Java indem ich statt "class" hier "interface" schreibe, "interface Printable", und dann folgt eine Reihe von Methodensignaturen. Das heißt, ich habe hier eine Methode "print" und eine Methode "printToPDF", aber ich habe innerhalb dieser Methode kein weiteren Code, was genau denn eigentlich passieren soll, wenn ich diese Methode "print" aufrufe. So ein Interface nutzt mir für sich genommen erstmal nichts, sondern ich muss es irgendwo implementieren. und das sehen wir hier rechts. Da habe ich eine Klasse mit dem Namen "MyClass". hier vorne habe ich das Schlüsselwort "Class". Und jetzt schreibe ich dahinter "implements Printable" und mit "Printable" meine ich eben genau dieses Interface. Was bedeutet das jetzt? Dieses implements-Interface ist nichts anderes, als so eine Art Vertrag. Und ein Vertrag ist natürlich immer beidseitig. Das bedeutet, ich verspreche dass meine Klasse "MyClass" auf jeden Fall die Funktionen "print" und "printToPDF" haben wird. weil die eben in diesem Interface definiert worden sind. Und was genau mit "print" und "printToPDF" passiert, das muss ich hier auch tatsächlich implementieren. Das heißt, wenn ich hier oben dieses "implements Printable" schreibe, aber die Funktion "print" nicht definiere, dann würde ich einen Fehler bekommen und das Programm wird eben nicht kompiliert. Was ist jetzt der Sinn dahinter? Nun, ein Vertrag ist umso sinnvoller, je mehr Leute ihn unterschreiben. Schauen wir uns das jetzt mal an, wenn ich über mehrere Objekte gehe. Also ich habe hier eine "While"-Schleife und sage ich möchte für alle Objekte in einer Liste eine Schleife durchlaufen, also "MyObject in listOfObjects". Und dann schaue ich nach, ist denn das entsprechende Objekt, das ich mir jetzt in diesem Schleifendurchlauf angucke, ist denn das überhaupt fähig ausgedruckt zu werden. Also besitzt es diese Funktion "Printable". Und jetzt kann ich schauen: Hat das Objekt, um das es jetzt gerade geht tatsächlich dieses Interface implementiert? Wenn das der Fall ist, dann kann ich auch dieses ".print" aufrufen. Und das ist eine schöne Möglichkeit, um sicher zu gehen, dass eine Klasse, die ich verwende, auch tatsächlich die Schnittstellen bereitstellt, die ich jetzt erwarte. Und dafür kann man dann eben diese Interfaces verwenden. Schauen wir mal auf das UML-, also auf das Unified-Modelling-Language -Objekt davon. Ein Interface hat sehr viel mit einem Objekt zu tun. Hier oben haben wir das Interface, ich habe hier den Namen "Printable". Und um zu erkennen, dass es sich um ein Interface und nicht um ein Objekt handelt, schreibe ich einfach Interface drüber. und setze es in diese spitzen Klammern. Und dann schreibe ich hier einfach die Methodenaufrufe, die dieses Interface implementiert, also "print" und "printToPDF" in diesem Beispiel. Und jede Klasse, die dann dieses Interface implementieren soll, die verweist darauf mit einer gestrichelten Linie und dann oben diese dreieckige Pfeilspitze. Es erinnert so ein bisschen an die Vererbung und es hat auch schon etwas mit Vererbung zu tun. Aber es ist keine durchgezogene Linie, sondern diese gestrichelte Linie. Interfaces sind bei großen Projekten, wo Sie mit vielen Objekten, mit vielen Klassen arbeiten, oder auch mit unterschiedlichen Programmiererinnen und Programmierern zusammenarbeiten müssen, eine schöne Möglichkeit, um manche Dinge nicht mehr extra aushandeln zu müssen, sondern zu sagen: Wir haben hier ein Interface, und wir erwarten, dass diese Klasse dieses Interface verwendet. Und wenn ich dann bei der Programmierung dieser neuen Klasse einen Fehler mache, dann helfen mir diese Interfaces auch diese Fehler zu erkennen. Weil das Programm wird dann nicht kompiliert, ich bekomme eine Fehlermeldung. und ich kann dann eben entsprechend darauf reagieren.

Grundlagen der Programmierung: Objektorientiertes Design

Lernen Sie alle Grundbegriffe und Methoden von objektorientiertem Design kennen und holen Sie sich das Rüstzeug, um bald Ihre eigene Softwareprojekte zu starten.

2 Std. 43 min (45 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Exklusiv für Abo-Kunden
Erscheinungsdatum:23.05.2014
Laufzeit:2 Std. 43 min (45 Videos)

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!