‫In diesem der nächsten Videos werden Sie Interfaces kennenlernen, und diese sind
‫sehr wichtig, weil sie die Funktionalität der objektorientierten Programmierung und von Klassen wirklich erweitern.
‫Was ist also eine Schnittstelle?
‫Stellen Sie sich Schnittstellen als Verträge vor, bei denen eine Klasse, die eine Schnittstelle implementiert, sich bereit erklärt, Implementierungen
‫für alle von dieser Schnittstelle definierten Objekte bereitzustellen.
‫Dies bedeutet, dass eine Schnittstelle die Vertragsbedingungen, Methoden und Eigenschaften enthält.
‫Aber wie wir sie implementieren, hängt von der Klasse ab, die die Schnittstelle implementiert.
‫Solange diese Interface-Methoden in unserer Klasse implementiert sind, wird Interface glücklich bleiben.
‫Schnittstellen können also keine wichtigen Implementierungen enthalten.
‫Daher wird ihren Namen im Allgemeinen das Auge vorangestellt, um sie von anderen cis-Objekten zu unterscheiden.
‫Wir erstellen Schnittstellen mit dem Schlüsselwort interface.
‫Schauen wir uns nun an, wie wir das in der Praxis umsetzen können.
‫In Ordnung, da sind wir wieder in Visual Studio, also ist eine der am
‫häufigsten verwendeten Funktionen in unseren cis-Klassen der Vergleich mit Instanzen einer Klasse, dies geschieht mit der equals-Methode.
‫Dies wird vergleichen, um zu sehen, ob der Verweis auf beide Klassen gleich ist.
‫Wir möchten sie jedoch vergleichen und sehen, ob sie basierend auf einem anderen Feld gleich sind, damit wir dies
‫erreichen können, indem wir eine Schnittstelle namens I Equatable implementieren.
‫In unserem Fall haben wir also eine Klasse namens ticket und sie definiert eine Eigenschaft namens Dauer in Stunden.
‫Lassen Sie uns also weitermachen und diese Klasse erstellen.
‫Ganz schnell hier, ich habe eine neue Klasse und eigentlich kann ich entweder hierher gehen oder die Tastenkombination K und C
‫verwenden, und ich werde dieses eine Ticket nennen.
‫Dieses Ticket hat also, wie gesagt, nur eine Eigenschaft und einen Konstruktor.
‫Setzen wir sie also hier ein.
‫Diese Eigenschaft ist also dazu da, Variationen des Tickets und unseres zu speichern.
‫Und dann haben wir hier den Konstruktor.
‫Und jetzt lassen Sie uns fortfahren und die equatable Schnittstelle implementieren, also verwenden wir etwas Ähnliches wie bei der
‫Verwendung von Vererbung, wir haben den Doppelpunkt und dann die Schnittstelle verwendet, die wir verwenden möchten.
‫Und Sie sehen, es gibt eine Menge davon.
‫Und diejenige, die ich verwenden möchte, wird die I-Gleichstellung sein.
‫Jetzt müssen Sie definieren, welche Arten von Objekten Sie vergleichen möchten.
‫Hier möchte ich also Tickets miteinander vergleichen.
‫Aus diesem Grund muss ich ein Ticket-Schlüsselwort hinzufügen.
‫Jetzt werden Sie feststellen, dass Visual Studio nicht sehr glücklich ist, da es besagt, dass eine verallgemeinerte Methode für einen Werttyp
‫der Klasse definiert wird, um eine bestimmte Methode zu erstellen.
‫Aber das Problem, das wir hier bekommen, ist, dass ticket keine Interface-Member implementiert.
‫Gleichwertiges Ticket ist gleich Geheimnis.
‫Wir können das sehr leicht beheben, indem wir einfach weitermachen und dies implementieren, sodass wir entweder alle Member verwenden können, um
‫sie explizit zu implementieren, oder wir können dies einfach manuell tun.
‫Machen wir das ganz schnell.
‫Im Grunde möchte ich also einen booleschen Wert zurückgeben, der überprüft, ob das Ticket, das ich
‫passiere, das gleiche wie das Ticket sein wird.
‫Das ist derjenige, der diese Methode aufruft.
‫Okay, also das Ticket.
‫Das erstellen wir daraus, vergleichen es mit einem anderen Ticket und dann wollen wir die Dauerstunden vergleichen.
‫Wenn sie also die gleiche Dauer haben, gehen wir davon aus, dass es sich um das gleiche Ticket handelt.
‫OK, also können wir hier einfach fortfahren und den Vergleich dieser Dauer in Stunden mit der anderen Dauer
‫und Stunden zurückgeben.
‫Im Grunde sagen wir also, dass dieses Ticket eine Dauer und Stunden hat und das andere Ticket ebenfalls von diesem Ticket
‫ist.
‫Es hat also eine Dauer in Stunden und wir vergleichen die beiden miteinander.
‫Und dieser Vergleich, dieses doppelte Gleichheitszeichen, wird im Grunde zurückkehren.
‫Richtig oder falsch?
‫OK, das ist also der Bullenoperator links und rechts.
‫Es vergleicht also das, was von ihm übrig ist, mit dem, was ihm recht ist.
‫Und wenn sie gleich sind, wird true zurückgegeben.
‫Andernfalls wird false zurückgegeben.
‫Grundsätzlich wird gesagt, dass diese Methode equals true zurückgibt, wenn das Ticket, das die equals-Methode aufruft, die gleiche Dauer und
‫die gleichen Stunden wie das Ticket hat, mit dem wir es vergleichen, und dann zurückkehren.
‫True, wenn nicht, dann wird false zurückgegeben.
‫OK, also gehen wir zu unseren Programmen über.
‫Jawohl.
‫Und benutze das tatsächlich.
‫Hier werden wir also zwei Tickets erstellen.
‫Eins wird T eins sein und es wird ein neues Ticket sein und es wird eine Dauer und Stunden von zehn haben.
‫Und dann kopieren wir das tatsächlich und erstellen ein Ticket zwei, das auch zehn Stunden hat und jetzt können wir
‫sie vergleichen.
‫Lassen Sie uns hier also die rechte Kontrolllinie verwenden, um einfach T zwei Punkte gleich anzuzeigen und T eins damit zu vergleichen.
‫Sie können also grundsätzlich unser Ticket mit unserem Ticket eins vergleichen und es nach der Equals-Methode vergleichen.
‫Lassen Sie uns das jetzt ganz schnell ausführen.
‫Und Sie werden sehen, dass es wahr ist, und das ist normalerweise bei der equals-Methode nicht der Fall, denn
‫wenn Sie sozusagen mit Objekten vergleichen, die eine normale equals-Methode verwenden.
‫Wenn wir dies also nicht implementieren würden, lassen Sie uns dies hier für eine Sekunde los.
‫Lassen Sie uns das alles auskommentieren und mit Ihnen vergleichen.
‫Sehen Sie, die Methode ist immer noch da.
‫Dieses equal funktioniert immer noch, weil equal eine Methode ist, die im Allgemeinen existiert, und Sie sehen jetzt, dass es
‫false lautet, weil equals eine Methode ist, die sich innerhalb der Objektklasse befindet.
‫Und die Objektklasse hat immer diese gleiche Methode, weil jede Klasse von Objekt erbt.
‫Aber jetzt implementieren wir unsere eigene equals-Methode, indem wir die equatable-Schnittstelle verwenden.
‫Wir verwenden also eine spezielle Schnittstelle, die es uns ermöglicht, sozusagen auf unsere eigene Art zu vergleichen und unseren eigenen Code
‫zu implementieren.
‫Wenn wir die beiden jetzt vergleichen, vergleichen wir nicht, ob das Objekt genau das gleiche ist, mit dem wir es
‫vergleichen.
‫Aber wenn in unserem Fall die Zeit in unserem gleich ist.
‫Also ist die Dauer und unsere gleich, und dann wird es zurückkehren.
‫Wahr.
‫Wenn die Uhrzeit und die Stunden nicht gleich sind, sagen wir, es sind sechs, wird false zurückgegeben, da die
‫Dauer für die beiden Tickets, die wir miteinander vergleichen, nicht gleich ist.
‫Dies war also nur ein Beispiel für eine einfache vorhandene Schnittstelle.
‫Und wie Sie gesehen haben, gibt es viele Schnittstellen, die beim Erstellen eines speziellen Projekts automatisch vorhanden sind.
‫Aber wir werden im nächsten Video sehen, wie wir unsere eigenen Schnittstellen erstellen und verwenden.
‫Wir sehen uns also dort.