Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
1 Einführung
2 Grundlagen
3 Fehlerbehandlung
4 Erweiterte Grundlagen
5 Objektorientierte Programmierung
6 Wichtige Klassen in .NET
7 Weitere Elemente eines Windows-Programms
8 Datenbank-Anwendungen mit ADO.NET
9 Internet-Anwendungen mit ASP.NET
10 Zeichnen mit GDI+
11 Beispielprojekte
12 Windows Presentation Foundation
13 Windows Store-Apps für Windows 8
A Installation und technische Hinweise
B Lösungen der Übungsaufgaben
C Inhalt der Buch-DVD
D Der Autor
Stichwort

Jetzt Buch bestellen
Ihre Meinung?

Spacer
Einstieg in Visual Basic 2012 von Thomas Theis
Ideal für Programmiereinsteiger geeignet
Buch: Einstieg in Visual Basic 2012

Einstieg in Visual Basic 2012
Rheinwerk Computing
579 S., 3., aktualisierte und erweiterte Auflage 2013, brosch., mit DVD
24,90 Euro, ISBN 978-3-8362-1959-4
Pfeil 5 Objektorientierte Programmierung
Pfeil 5.1 Was ist Objektorientierung?
Pfeil 5.2 Klasse, Eigenschaft, Methode, Objekt
Pfeil 5.2.1 Objektverweis und Instanz
Pfeil 5.3 Eigenschaftsmethode
Pfeil 5.4 Konstruktor
Pfeil 5.5 Referenzen, Vergleiche und Typen
Pfeil 5.5.1 Objekte vergleichen
Pfeil 5.5.2 Typ eines Objekts ermitteln
Pfeil 5.5.3 Typ eines Objekts durch Vergleich ermitteln
Pfeil 5.6 Delegates
Pfeil 5.7 Statische Elemente
Pfeil 5.8 Vererbung
Pfeil 5.9 Konstruktoren bei Vererbung
Pfeil 5.10 Polymorphie
Pfeil 5.11 Schnittstellen
Pfeil 5.11.1 Vorhandene Schnittstellen

Rheinwerk Computing - Zum Seitenanfang

5.11 SchnittstellenZur nächsten Überschrift

Im Zusammenhang mit der Vererbung gibt es bei Visual Basic (und bei vielen anderen objektorientierten Programmiersprachen) das Konzept der Schnittstelle (Interface). Eine Schnittstelle sieht aus wie eine Klasse, enthält aber nur Definitionen, keinen Programmcode. Von einer Schnittstelle können keine Objekte erzeugt werden.

Schnittstellen werden erst zum Leben erweckt, wenn sie von einer Klasse verwendet bzw. implementiert werden. Die Klasse ist dabei verpflichtet, alle Elemente der Schnittstelle zu implementieren. Durch eine Schnittstelle wird die Verwandtschaft zwischen Klassen ermöglicht. Dies ist, wie im vorherigen Abschnitt über Polymorphie zu sehen war, eine Voraussetzung für polymorphes Verhalten.

In einer Klasse können mehrere Schnittstellen implementiert werden. Über eine dieser Schnittstellen ergibt sich jeweils eine Verwandtschaft dieser Klasse mit einer oder mehreren anderen Klassen. Es hat sich im Laufe der Entwicklung der objektorientierten Programmierung erwiesen, dass dieses Vorgehen günstiger ist als die sogenannte Mehrfachvererbung.

Hinweis: Bei Visual Basic gibt es keine Mehrfachvererbung. Bei der Mehrfachvererbung erbt eine Klasse Eigenschaften und Methoden mehrerer Basisklassen, das Verfahren hat allerdings verschiedene Nachteile.

Der Visual-Basic-Editor unterstützt die Implementation einer Schnittstelle, indem er das Codegerüst für die Elemente der implementierten Schnittstellen sofort automatisch in die Klasse einfügt, nachdem die Implementation begonnen wurde. Beim nachfolgenden Beispiel werden nur die elementaren Bestandteile für die Implementierung von Schnittstellen vorgeführt. Die sich hierbei ergebende Klasse ist nur bedingt sinnvoll einsetzbar, hält das Beispiel aber überschaubar. Es folgen im Projekt Schnittstellen1 zwei Schnittstellendefinitionen, jede in einer eigenen Klassendatei, wie bisher die eingesetzten Klassen. Zunächst die Schnittstelle Fahrzeug:

Public Interface Fahrzeug
Function einsteigen() As String
Function reifenwechseln() As String
End Interface

Listing 5.25 Projekt »Schnittstellen1«, Interface »Fahrzeug«

Es folgt die Schnittstelle Schiff:

Public Interface Schiff
Function schwimmen() As String
Function anlegen() As String
End Interface

Listing 5.26 Projekt »Schnittstellen1«, Interface »Schiff«

Zur Erläuterung:

  • Analog zu einer Klasse steht eine Schnittstelle zwischen Interface und End Interface.
  • Beiden Klassen werden typische Fähigkeiten verliehen: In ein Fahrzeug kann man einsteigen und man kann die Reifen des Fahrzeugs wechseln; ein Schiff kann schwimmen und am Ufer anlegen.
  • Der genaue Ablauf dieser Vorgänge wird hier nicht (durch Programmcode) festgelegt. Dies geschieht erst bei der Implementation in einer Klasse.

Die Klasse AmphiCar implementiert diese beiden Schnittstellen:

Public Class AmphiCar
Implements Fahrzeug, Schiff

Public Function reifenwechseln() As String _
Implements Fahrzeug.reifenwechseln
reifenwechseln = "wechselt alle vier Reifen"
End Function

Public Function einsteigen() As String _
Implements Fahrzeug.einsteigen
einsteigen = "bekommt Fahrgäste"
End Function

Public Function anlegen() As String _
Implements Schiff.anlegen
anlegen = "legt am Ufer an"
End Function

Public Function schwimmen() As String _
Implements Schiff.schwimmen
schwimmen = "fährt auf dem Wasser"
End Function
End Class

Listing 5.27 Projekt »Schnittstellen1«, Klasse »AmphiCar«

Zur Erläuterung:

  • Das Schlüsselwort Implements leitet die Implementation ein.
  • Es erscheinen die vier Methoden, die zu implementieren sind. Bei jeder dieser Methoden wird mit dem Schlüsselwort Implements notiert, welche Methode aus welcher Schnittstelle hier implementiert wird.
  • Alle vier Methoden liefern in diesem Beispiel nur Text zurück.
  • Die Schnittstellen können jeweils auch von anderen Klassen implementiert werden. Dadurch ergibt sich eine Verwandtschaft der Klasse AmphiCar mit dieser anderen Klasse.

Im Programm wird ein Objekt der Klasse AmphiCar erzeugt. Anschließend werden alle vier Methoden aufgerufen, siehe Abbildung 5.12.

Public Class Form1
Private Sub cmdAnzeigen_Click(...) Handles ...
Dim a As New AmphiCar
lblAnzeige.Text = a.einsteigen() &
vbCrLf & a.schwimmen() &
vbCrLf & a.anlegen() &
vbCrLf & a.reifenwechseln()
End Sub
End Class

Listing 5.28 Projekt »Schnittstellen1«, Nutzung der Klasse

Zur Erläuterung:

  • Ein Objekt der Klasse AmphiCar kann alles, was ein Fahrzeug oder ein Schiff kann (z. B. schwimmen). Wie es diese Tätigkeit genau ausführt, wird erst in der Klasse AmphiCar festgelegt.

Abbildung

Abbildung 5.12 Vier implementierte Schnittstellen-Methoden


Rheinwerk Computing - Zum Seitenanfang

5.11.1 Vorhandene SchnittstellenZur vorigen Überschrift

Visual Basic stellt bereits eine ganze Reihe von Schnittstellen zur Verfügung. Diese können in eigenen Klassen implementiert werden. Als Beispiel soll das Interface ICloneable dienen: Es unterstützt das Klonen von Objekten einer Klasse, also das vollständige Kopieren eines Objekts in ein anderes Objekt der gleichen Klasse. Jede Klasse, die diese Schnittstelle implementiert, muss die Methode Clone() implementieren und darin genau festlegen, wie der Klon-Vorgang in dieser speziellen Klasse ablaufen soll. Dies trifft z. B. für die bereits behandelte Klasse Array zu (siehe hierzu auch Abschnitt 4.5).

Im nachfolgenden Beispiel Schnittstellen2 werden eine eigene Schnittstelle und die vorhandene Schnittstelle ICloneable implementiert.

Zunächst das Interface aenderbar in der Datei aenderbar.vb:

Public Interface aenderbar
Sub faerben(farbe As String)
Sub vergroessern(faktor As Double)
End Interface

Listing 5.29 Projekt »Schnittstellen2«, Interface »aenderbar«

Zur Erläuterung:

  • In jeder Klasse, die dieses Interface implementiert, müssen die beiden Methoden faerben() und vergroessern() definiert werden.

Es folgt die Klasse kreis in der Datei kreis.vb, in der Kreise mit ihren Eigenschaften und Methoden definiert werden:

Public Class kreis
Implements aenderbar, ICloneable

Dim farbe As String
Dim radius As Double

Sub New(f As String, r As Double)
farbe = f
radius = r
End Sub

Sub vergroessern(faktor As Double
) Implements aenderbar.vergroessern
radius = radius * faktor
End Sub

Sub faerben(f As String
) Implements aenderbar.faerben
farbe = f
End Sub

Function Clone() As Object _
Implements ICloneable.Clone
Dim tmp As New kreis(farbe, radius)
Clone = tmp
End Function

Function aus() As String
aus = "Farbe: " & farbe &
", Radius: " & radius
End Function
End Class

Listing 5.30 Projekt »Schnittstellen2«, Klasse »kreis«

Zur Erläuterung:

  • Die Klasse kreis implementiert neben der eigenen Schnittstelle aenderbar auch die vorhandene Schnittstelle ICloneable.
  • Kreise haben einen Radius und eine Farbe.
  • Nach dem Konstruktor folgen die beiden Methoden faerben() und vergroessern(). Sie werden passend zur Klasse kreis implementiert.
  • Innerhalb der Methode Clone() wird ein Objekt der Klasse kreis erzeugt. Es wird mit den Daten des aufrufenden Objekts gefüllt. Der Verweis auf das neu erzeugte Objekt wird zurückgeliefert.

Zuletzt das Hauptprogramm des Projekts:

Public Class Form1
Private Sub cmdAnzeigen_Click(...) Handles ...
Dim k1 As New kreis("rot", 20)
lblA.Text = k1.aus()

k1.faerben("gelb")
k1.vergroessern(1.5)
lblA.Text &= vbCrLf & k1.aus()

Dim k2 = k1.Clone()
lblA.Text &= vbCrLf & k2.aus()
End Sub
End Class

Listing 5.31 Projekt »Schnittstellen2«, Hauptprogramm

Zur Erläuterung:

  • Es wird ein Kreis mit Radius und Farbe erzeugt.
  • Dieser Kreis wird gefärbt und vergrößert.
  • Anschließend wird ein Verweis auf ein Objekt der Klasse kreis erzeugt. Diesem Verweis wird das Objekt zugewiesen, das als Klon des ersten Objekts entstanden ist. Zur Kontrolle wird dieses zweite Objekt ausgegeben.



Ihre Meinung

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.

<< zurück
  Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Einstieg in Visual Basic 2012

Einstieg in Visual Basic 2012
Jetzt Buch bestellen


 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Rheinwerk-Shop: Visual Basic 2012






 Visual Basic 2012


Zum Rheinwerk-Shop: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Rheinwerk-Shop: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


Zum Rheinwerk-Shop: Java ist auch eine Insel






 Java ist auch
 eine Insel


Zum Rheinwerk-Shop: Einstieg in Python






 Einstieg in Python


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo





Copyright © Rheinwerk Verlag GmbH 2013
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern