vb.net- klassen und objekte - luis.uni- · pdf fileeinführung in vb 19.02.09 seite 3...
TRANSCRIPT
VB.NET- Klassen und Objekte
Einführung in VB 19.02.09Seite 2
Zusammenfassung in ein Modul
Prozedurale Programmierung
Algorithmus "Taschenrechner"
Subtraktion Addition Multiplikation Division Main
Prozedurale Programmierung: Das Problem wird in viele verschiedene Teilaufgaben (Funktionen) zerlegt.
Anweisung 1Anweisung 2...Anweisung n
Daten
Einführung in VB 19.02.09Seite 3
Regeln Eine Prozedur kann in Abhängigkeit eines Parameters aufgerufen
werden. In jeder Prozedur stehen Anweisungen,
... die lokal Daten lesen oder verändern können. ... die übergebene Parameter weiterverarbeiten können. ... die Daten als Rückgabewert bereitstellen.
In der prozeduralen Programmierung sind die Daten unabhängig von den Funktionen.
Jede Anweisung kann gültige Daten verändern oder nur lesen. Falls globale Daten verändert werden, können die Folgen für das
Programm nicht abgeschätzt werden.
Einführung in VB 19.02.09Seite 4
Objektorientierte Programmierung ... abstrahiert Gegenstände der realen Welt, um sie in einem Programm
abzubilden zu können. ... versucht Daten, die ein Objekt beschreiben und Prozeduren, die die
Daten verändern, in einer Struktur zusammenzufassen. ... versucht Daten und Funktionen, die die Daten verändern, in eine
Struktur zu kapseln.
Einführung in VB 19.02.09Seite 5
Nutzung ... von Objekten.
Gegenstand in der realen Welt. Beschreibung durch seine Eigenschaften. Ein Textfeld arbeitet mit einer roten Schrift auf grauen Hintergrund.
... von Klassen. Baupläne für eine bestimmte Kategorie von Objekten. Beschreibung von bestimmten Arten. Welche Eigenschaften und Funktionen hat ein Textfeld?
... von Nachrichten. Kommunikation zwischen Objekt und Benutzer. Reaktion auf eine Aktion des Benutzers. Auslösung eines Ereignisses. Der Benutzer gibt ein Zeichen in das Textfeld ein.
Einführung in VB 19.02.09Seite 6
Objekte ... stellen eine Abstraktion eines realen Gegenstandes dar. ... sind Akteure in einem abstrakten Modell. Windows Forms sind zum Beispiel Objekte. ... haben bestimmte Eigenschaften (Attribute) und Methoden
(Funktionen). ... berichten über ihren Zustand und können diesen mit Hilfe von
Anweisungen verändern. ... kommunizieren mit anderen Objekten.
Der Nutzer der Schnittstelle kennt nicht deren Implementierung. Dem Nutzer genügt es zu wissen, wie die Schnittstelle aufgerufen
werden muss und welche Form von Antwort sie gibt.
Einführung in VB 19.02.09Seite 7
Beispiel
Das Objekt Auto hat Eigenschaften wie Farbe, Motorleistung etc.
... und kommuniziert mit anderen Verkehrsteilnehmern.
... und reagiert auf die Verkehrszeichen.
Einführung in VB 19.02.09Seite 8
Klassen ... fassen Objekte in Kategorien zusammen. ... fassen Objekte mit den gleichen Eigenschaften und Methoden
zusammen. ... stellen Baupläne für konkrete Objekte dar. ... bieten eine Schablone für eine bestimmte Kategorie von Objekten an.
Einführung in VB 19.02.09Seite 9
Eigenschaften (Attribute) einer Klasse ... beschreiben einen Gegenstand. ... sind statische Werte, die ein Objekt kennzeichnen. Jeder Gegenstand in einer Gruppe (Klasse) besitzt die gleichen
Eigenschaften. Jedes Objekt hat aber Attributwerte, die das Objekt von allen anderen
unterscheidet.
Einführung in VB 19.02.09Seite 10
Methoden (Memberfunction) einer Klasse ... verändern die Eigenschaft eines Objekts. Jedes Objekt in einer Gruppe (Klasse) hat die gleichen Methoden. Objekte nutzen Methoden, um mit anderen Objekten zu kommunizieren. Objekte nutzt Methoden, um seine Attributwerte zu verändern.
Einführung in VB 19.02.09Seite 11
Objektvariable deklarierenDim strText As System.Text.StringBuilder Es wird ein Verweis auf ein bestimmtes Objekt definiert. Mit Hilfe von As Object wird ein Verweis auf ein beliebiges Objekt
erzeugt. Mit Hilfe von As System.Text.StringBuilder wird ein Verweis auf eine
bestimmte Klasse von Objekten definiert. Die Variable kann nur auf ein Objekt der angegebenen Klasse verweisen.
Die Variable hat zu Anfang den Wert Nothing. Die Variable verweist auf kein Objekt.
Es wird Platz für das Objekt reserviert. Das Objekt selber existiert aber noch nicht.
Einführung in VB 19.02.09Seite 12
Objekt (Instanz) erstellenstrText = New System.Text.StringBuilder() Alle Methoden und Eigenschaften des Objekts werden im Speicher
reserviert. Die Objektvariable verweist auf die Speicheradresse, an der das Objekt
abgelegt ist. Falls die Objektvariable nicht mehr benötigt wird, sollten Sie der
Variablen den Wert Nothing zuweisen.
Einführung in VB 19.02.09Seite 13
Deklaration und Erstellung zusammenfassenDim strText As New System.Text.StringBuilder("Eisbären essen Fisch") Es wird eine Objektvariable erstellt. Gleichzeitig wird mit Hilfe des Schlüsselwortes New ein Objekt erzeugt.
Objekte können nicht mit Hilfe des Zuweisungsoperator initialisiert werden.
Das neu erstellte Objekt wird durch den Text in den runden Klammern automatisch initialisiert.
Einführung in VB 19.02.09Seite 14
Eigenschaften ... beschreiben den aktuellen Zustand eines Objekts. ... beschreiben das Aussehen eines Objekts. ... können immer gelesen werden. Einige Eigenschaften können auch
verändert werden. ... werden mit einem Punkt von der Objektvariablen getrennt. ... können genauso wie andere Variablen genutzt werden.
Sub Main() Dim strText As System.Text.StringBuilder Dim laenge As Integer
strText = New System.Text.StringBuilder("Text.") laenge = strText.Length
End Sub
Einführung in VB 19.02.09Seite 15
Methoden Memberfunktion, Elementfunktion ... verändern oder lesen Attribute des dazugehörigen Objekts. Die zu implementierenden Methoden ergeben sich aus den Attributen
einer Klasse und deren Nutzung. ... sind Prozeduren, die an ein Objekt gebunden sind. Die Gesamtheit aller Methoden kann als Schnittstelle (Interface) nach
außen bezeichnet werden. ... ermöglichen die Kommunikation mit anderen Objekten. Als Trennzeichen zwischen der Objektvariablen und der Methode wird
ein Punkt genutzt.
Einführung in VB 19.02.09Seite 16
Beispiel
Sub Main() Dim strText As System.Text.StringBuilder Dim laenge As Integer
strText = New System.Text.StringBuilder("Eisbären ")
strText.Append(" essen Fisch.")
laenge = strText.Length strText.Insert(laenge - 1, " und leben im Wasser.")
strText.Replace(" ", " ") Console.WriteLine(strText)
End Sub
Einführung in VB 19.02.09Seite 17
Die Klasse Fahrzeuge
Eigenschaften
FarbeGeschwindigkeitAntriebsartKM-StandPersonenLadung
Methoden
BeschleunigenBremsenTanken
Einführung in VB 19.02.09Seite 18
Klassen in Textbeschreibungen Klassen entsprechen Substantiven in einer Projektbeschreibung.
Das Konto wird für den Inhaber xyz von der Bank a eröffnet. Das Auto HI hat den Besitzer xyz. Mitarbeiter Müller arbeitet an den Projekt Ausschreibung. Die Bestellung wird über einen Laserdrucker xyz ausgedruckt. Außendienstmitarbeiter Meier betreut Kunden im Bezirk Unterweser.
Die konkreten Objekte werden durch die Programmierung abstrahiert. Redundante oder für die Aufgabenstellung unnötige Klassen werden
nicht implementiert.
Einführung in VB 19.02.09Seite 19
Klassen in VB
Class Fahrzeug
End Class
Module Bewegung
Sub Main() Dim myFahrzeug As Fahrzeug
myFahrzeug = New Fahrzeug End Sub
End Module
Einführung in VB 19.02.09Seite 20
Hinweise Eine Klasse steht immer außerhalb eines Moduls. Eine Klasse kann mit Hilfe von Projekt – Klasse hinzufügen in einer
eigenen Datei innerhalb des Projekts gespeichert werden. Der Rahmen wird automatisch in der Datei eingefügt.
Der Klassenname ... sollte mit einem Großbuchstaben beginnen. ... hat häufig das Präfix cls für Class.
Einführung in VB 19.02.09Seite 21
Zugriff auf eine Klasse Standardmäßig hat eine Klasse den Modifizierer Friend. Die Klasse ist
im Projekt sichtbar, in dem sie definiert ist. Die Klasse ist aber nicht für andere Projekte sichtbar.
Mit Hilfe des Modifizierer Public wird die Klasse in allen Projekten sichtbar.
Einführung in VB 19.02.09Seite 22
Eigenschaften (Attribute) einer Klasse ... beschreiben die Merkmale eines Gegenstandes. ... beschreiben einen bestimmten Zustand. ... besitzen für jedes Objekt andere Werte. ... werden im Speicher für jedes Objekt neu angelegt. ... können meist nur über Methoden der eigenen Klasse verändert
werden.
Einführung in VB 19.02.09Seite 23
Eigenschaften in einer Textbeschreibung ... entsprechen meist der Beschreibungen eines Objekts.
Das Auto ist rot und hat einen KM-Stand von 130.000. Die Milch ist pasteurisiert. Sobald ein Buch im Lager vorhanden ist, wird es an den Kunden
ausgeliefert. ... sind Substantive, die einen Rückbezug auf ein anderes Substantiv
besitzen. Die Menge des Artikels. Ausleihdatum des Buches. Anmeldung eines Autos.
Einführung in VB 19.02.09Seite 24
Eigenschaften in VB
Class FahrzeugPrivate geschwindigkeit As Integer = 0Private farbe As StringPrivate ladung As Integer
End Class
Module Bewegung
Sub Main() Dim myFahrzeug As Fahrzeug
myFahrzeug = New Fahrzeug End Sub
End Module
Einführung in VB 19.02.09Seite 25
Sichtbarkeit Private oder Dim
Der Zugriff auf Attribute ist von außen her nicht möglich. Ein Zugriff von außen ist nicht zulässig. Die Eigenschaft kann nur mit Hilfe einer Methode verändert werden. Schreibschutz.
Public Die Attribute sind öffentlich zugänglich. Alle Objektvariablen der Klasse können auf die Attribute zugreifen
und diese verändern.
Einführung in VB 19.02.09Seite 26
Property ... bestehen aus der Prozedur
... Get, um einen Attributwert zu lesen. ... Set, um einen Attributwert zu setzen.
... bieten die Möglichkeit, Attributwerte zu überprüfen. ... ermöglichen es, Eigenschaften zu kapseln. ... können mit Hilfe des Modifiziers
... WriteOnly nur schreibend auf ein Attributwert zugreifen. ... ReadOnly nur lesend auf ein Attributwert zugreifen.
Einführung in VB 19.02.09Seite 27
Property definieren
Public Class clsFahrzeug Private pGeschwindigkeit As Integer Property geschwindigkeit() As Integer
Get Return pGeschwindigkeit End Get
Set(ByVal value As Integer)
If value > 0 Then pGeschwindigkeit = value End If End Set End PropertyEnd Class
Einführung in VB 19.02.09Seite 28
Standard-Property nutzen
Public Class clsFahrzeug Private pGeschwindigkeit As Integer Default Property geschwind(ByVal maxGeschwind As Integer) As Integer
Get Return pGeschwindigkeit End Get
Set(ByVal value As Integer)
If value > 0 And (value < maxGeschwind) Then pGeschwindigkeit = value End If End Set End PropertyEnd Class
Einführung in VB 19.02.09Seite 29
Hinweise Der Standardeigenschaft muss mindestens ein Parameter übergeben
werden. Eine Klasse besitzt immer nur eine Standardeigenschaft. Die Property darf nicht als statisch oder privat deklariert werden.
Einführung in VB 19.02.09Seite 30
Default-Property nutzen
Sub Main() Dim myFahrzeug As clsFahrzeug Dim maxG As Integer
maxG = 100 myFahrzeug = New clsFahrzeug myFahrzeug.geschwind(maxG) = 10 myFahrzeug.geschwind(maxG) = myFahrzeug.geschwind(maxG) - 1
End Sub
Einführung in VB 19.02.09Seite 31
Lesende Property
Public Class clsFahrzeug Private pGeschwindigkeit As Integer Private maxTankinhalt As Long Private nowTankinhalt As Double
Public ReadOnly Property Tankinhalt() As Double Get Return nowTankinhalt End Get End Property
End Class
Einführung in VB 19.02.09Seite 32
With-Anweisung nutzen
Dim myFahrzeug As clsFahrzeug
With myFahrzeug .Tankfuellung = 80 .Tanken(55)End With
With object ... End With bezieht sich immer auf das angegebene Objekt. Eigenschaften und Methoden, die zu dem angegebenen Objekt
gehören, benötigen kein Bezug zu Ihren Objekt.
Einführung in VB 19.02.09Seite 33
Konstruktoren .. sind spezielle Methoden für die Initialisierung von Attributwerten einer
Klasse. ... setzten das Objekt in einen definierten Anfangszustand. ... werden automatisch beim Erzeugen des Objekts aufgerufen. Jedes
benutzerdefinierte Objekt erbt von Object den Standardkonstruktor New().
... sind immer Prozeduren mit der Bezeichnung New. ... können überladen werden.
Einführung in VB 19.02.09Seite 34
Konstruktor erstellen
Public Class clsFahrzeug Private bezeichnung As String Private pGeschwindigkeit As Integer Private maxTankinhalt As Long Private nowTankinhalt As Double
Public Sub New() bezeichnung = "Mein Auto" pGeschwindigkeit = 0 maxTankinhalt = 80 nowTankinhalt = 10 End Sub
End Class
Einführung in VB 19.02.09Seite 35
Konstruktor mit Parametern
Public Class clsFahrzeug Private bezeichnung As String Private pGeschwindigkeit As Integer Private maxTankinhalt As Long Private nowTankinhalt As Double
Public Sub New(ByVal bezeichnung, ByVal maxTankinhalt) Me.Autoname = bezeichnung Me.Tankfuellung = maxTankinhalt End Sub
End Class
Einführung in VB 19.02.09Seite 36
Statische Eigenschaften ... haben für alle Objekte einer Klasse den gleichen Wert. ... sind Eigenschaften, deren Werte schon im Bauplan feststehen. ... sind konstant. ... werden nur einmal für jede Klasse angelegt. ... sind vorhanden, bevor ein neues Objekt erzeugt wird. ... werden zum Beispiel genutzt,
... um die Anzahl der Objekte einer Klasse zu ermitteln. ... um Eigenschaft, die für alle Objekte den gleichen Attributwert
haben, zu initialisieren. ... werden mit Shared gekennzeichnet. ... werden als Klassenvariablen bezeichnet.
Einführung in VB 19.02.09Seite 37
Statische (konstante) Eigenschaften
Public Class clsFahrzeug Public Shared ReadOnly Raeder = 4
Private Shared anzahlAuto As Long Private bezeichnung As String Private pGeschwindigkeit As Integer Private maxTankinhalt As Long Private nowTankinhalt As Double
End Class
Einführung in VB 19.02.09Seite 38
Statische (variable) Eigenschaften
Public Class clsFahrzeug Public Shared ReadOnly Raeder = 4
Private Shared anzahlAuto As Long
Private bezeichnung As String Private pGeschwindigkeit As Integer Private maxTankinhalt As Long Private nowTankinhalt As Double
End Class
Einführung in VB 19.02.09Seite 39
Statische Eigenschaft nutzen
Public Sub New() bezeichnung = "Mein Auto" pGeschwindigkeit = 0 maxTankinhalt = 80 nowTankinhalt = 10 clsFahrzeug.anzahlAuto = clsFahrzeug.anzahlAuto + 1 End Sub
Public Sub New(ByVal bezeichnung As String, ByVal maxTankinhalt As Double) Me.Autoname = bezeichnung Me.Tankfuellung = maxTankinhalt clsFahrzeug.anzahlAuto = clsFahrzeug.anzahlAuto + 1 End Sub
Einführung in VB 19.02.09Seite 40
Statische Methoden ... werden nur einmal für jede Klasse angelegt. ... bieten Berechnung an, die für alle Objekte gleich sind. ... werden als Klassenmethoden bezeichnet. ... haben Zugriff auf Klassenvariablen und statische Eigenschaften
sowie statische Methoden.
Einführung in VB 19.02.09Seite 41
... definieren
Public Shared Function VerbrauchProKm(ByVal km As Double, ByVal liter As Double) As Double
Dim verbrauch As Double = 0
If km > 0 Then verbrauch = (100 * liter) / km End If
Return verbrauch
End Function
Einführung in VB 19.02.09Seite 42
Vererbung ... stellt eine "ist eine"-Beziehung zwischen Klassen dar. Beispiel:
Fahrzeuge werden als Basisklasse (Wurzel) genutzt. Die Basisklasse teilt sich in die Blätter "Land", "Wasser" und "Luft"
auf. Die Blätter werden als Subklasse der Basisklasse "Fahrzeuge" definiert.
Einführung in VB 19.02.09Seite 43
Regeln Jede Klasse erbt von ihrer Basisklasse Eigenschaften und Methoden. Die geerbten Eigenschaften und Methoden können überlagert oder
ergänzt werden. Die Hierarchie sollte nicht mehr als drei Ebenen besitzen. In VB kann nur von einer Klasse geerbt werden.
Einführung in VB 19.02.09Seite 44
Basisklassen und Subklassen
Fahrzeuge
Land Wasser Luft
Moterisiert
Unmoterisiert
Schiene
Moterisiert
Unmoterisiert
Zeppelin
Heißluftballon
Flugzeug
Basisklasse
Subklasse
Einführung in VB 19.02.09Seite 45
Generalisierung und Spezialisierung
Fahrzeuge
Land Wasser Luft
Moterisiert
Unmoterisiert
Schiene
Moterisiert
Unmoterisiert
Zeppelin
Heißluftballon
Flugzeug
Spezialisierung
Generalisierung
Einführung in VB 19.02.09Seite 46
Basisklasse
Public Class clsGrafik Private xPos As Long Private yPos As Long
Sub New() Me.xPos = 0 Me.xPos = 0 End Sub
Sub New(ByVal x As Integer, ByVal y As Integer) Me.xPos = x Me.yPos = y End Sub
...
Einführung in VB 19.02.09Seite 47
SubklassePublic Class clsRechteck Inherits clsGrafik Private breite As Long Private hoehe As Long
Sub New(ByVal width As Long, ByVal height As Long) MyBase.New() Me.breite = width Me.hoehe = height End Sub
Sub New(ByVal width As Long, ByVal height As Long, ByVal x As Long, ByVal y As Long)
MyBase.New(x, y) Me.breite = width Me.hoehe = height End Sub
Einführung in VB 19.02.09Seite 48
Zugriffsrechte Private
Der Zugriff auf die Methoden oder Attribute ist von außen her nicht möglich.
Ein Zugriff von außen ist nicht zulässig. Eigenschaften sind meist privat.
Protected Der Zugriff ist von außerhalb der Klasse verboten Ausnahme: Subklassen können auf die Eigenschaften zugreifen.
Public Die Methoden und Attribute sind öffentlich zugänglich. Alle Objekte einer Klasse können auf diese Methoden und Attribute
zugreifen. Methoden sind meist öffentlich.
Einführung in VB 19.02.09Seite 49
Grafische DarstellungclsGrafik
Private xPosPrivate yPos
Proteced punkt
Public ausgabe
clsRechteck : clsGrafik
clsPrint
Einführung in VB 19.02.09Seite 50
Konstruktoren ... werden nicht vererbt. Es wird immer zuerst der parameterlose Konstruktor der Basisklasse
aufgerufen. Es wird zuerst die Basisklasse und dann die Subklasse erzeugt.
Einführung in VB 19.02.09Seite 51
Zugriff auf den Konstruktor der BasisklassePublic Class clsRechteck Inherits clsGrafik Private breite As Long Private hoehe As Long
Sub New(ByVal width As Long, ByVal height As Long) MyBase.New() Me.breite = width Me.hoehe = height End Sub
Sub New(ByVal width As Long, ByVal height As Long, ByVal x As Long, ByVal y As Long)
MyBase.New(x, y) Me.breite = width Me.hoehe = height End Sub
Einführung in VB 19.02.09Seite 52
Me und MyBase Me
Verweis auf das aktuelle Objekt. Verweis auf ein Objekt, in dem der Code momentan ausgeführt wird.
MyBase Aufruf von Funktionen und Eigenschaften der geerbten Klasse. Verweis auf die Basisklasse.
Einführung in VB 19.02.09Seite 53
Polymorphie (Vielgestaltigkeit) Eine Variable wird für Objekte verschiedener Klassen genutzt. Eine Methode wird von unterschiedlichen Objekte verschiedener
Klassen genutzt. Jede Klasse interpretiert die Methode anders.
Einführung in VB 19.02.09Seite 54
Statische Polymorphie Überladung von Methoden. Gleichartige Aktionen werden mit unterschiedlichen Datentypen und /
oder Parametern durchgeführt. Wenn eine Methode mit Overloads gekennzeichnet wird, müssen alle
überladenen Methoden mit dem Modifizier gekennzeichnet werden. Die Methode der Subklasse hat Vorrang vor der Methode der
Basisklasse.
Einführung in VB 19.02.09Seite 55
Merkmale Methoden haben den gleichen Namen. Methoden unterscheiden sich in der Anzahl der übergebenen
Parameter oder deren Datentyp. Ausnahme: Geerbte Methoden müssen sich nicht in der Anzahl der Parameter oder deren Datentyp unterscheiden.
Der Rückgabewert spielt keine Rolle.
Einführung in VB 19.02.09Seite 56
Konstruktoren überladenPublic Class clsRechteck Inherits clsGrafik Private breite As Long Private hoehe As Long
Sub New(ByVal width As Long, ByVal height As Long) MyBase.New() Me.breite = width Me.hoehe = height End Sub
Sub New(ByVal width As Long, ByVal height As Long, ByVal x As Long, ByVal y As Long)
MyBase.New(x, y) Me.breite = width Me.hoehe = height End Sub
Einführung in VB 19.02.09Seite 57
Methoden der Basisklasse überladen
Public Overloads Function GetInformation() As String Dim ausgabe As String
ausgabe = MyBase.GetInformation ausgabe = ausgabe + vbCrLf ausgabe = ausgabe + "Breite: " + breite.ToString
ausgabe = ausgabe + ", Hoehe: " + hoehe.ToString Return ausgabe
End Function
Public Overloads Function Verschieben(ByVal versatzX As Integer) As Long MyBase.PositionX = MyBase.PositionX + versatzX
Return MyBase.PositionX End Function
Einführung in VB 19.02.09Seite 58
Dynamische Polymorphie Methoden der Basisklasse werden durch die Subklasse überlagert. Methoden der Basisklasse werden durch Methoden aus der Subklasse
überschrieben. Der Name der Methode ist gleich, aber die Funktionalität wird an die Subklasse angepasst.
Late Binding. Die Zuordnung der Methode zu einem Aufruf erfolgt zur Laufzeit.
Einführung in VB 19.02.09Seite 59
Methoden der Basisklasse überlagern
Public Shadows Function Verschieben(ByVal versatzX As Integer) As Long MyBase.PositionX = MyBase.PositionX + versatzX
Return MyBase.PositionX End Function
Einführung in VB 19.02.09Seite 60
Methoden der Basisklasse können überschrieben werden
Public Overridable Function GetInformation() As StringDim ausgabe As String
ausgabe = "X-Position: " + xPos.ToStringausgabe = ausgabe + ", Y-Position: " + yPos.ToStringReturn ausgabe
End Function
Einführung in VB 19.02.09Seite 61
Methoden der Basisklasse überschreiben
Public Overrides Function GetInformation() As String Dim ausgabe As String
ausgabe = MyBase.GetInformation ausgabe = ausgabe + vbCrLf ausgabe = ausgabe + "Radius: " + radius.ToString Return ausgabe
End Function
Einführung in VB 19.02.09Seite 62
Voraussetzung In der Basisklasse ist die Funktion mit Overridable gekennzeichnet. In der Subklasse muss die Funktion mit Overrides gekennzeichnet
werden. Die Funktionen müssen
... den gleichen Namen besitzen. ... die gleiche Anzahl von Parametern mit dem gleichen Datentyp
besitzen. ... den gleichen Rückgabewert haben.
Einführung in VB 19.02.09Seite 63
Abstrakte MethodenPublic MustOverride Function GetInformation() As String … enthalten keinen Code. … bestehen nur aus dem Prozedurkopf. … müssen von allen Subklassen überschrieben werden. Alle Subklassen nutzen die Methode. Jede Subklasse benötigt aber
eine andere Implementierung. Die Sichtbarkeit muss in der Sub- sowohl als auch in der Basisklasse
identisch sein.
Einführung in VB 19.02.09Seite 64
Abstrakte KlassenPublic MustInherit Class clsGrafik Objekte dieser Klasse existieren nicht … dienen als Sammelbecken für Methoden, die alle Subklassen nutzen.
Die Subklassen implementieren die Methoden aber unterschiedlich. … können
… vollständig implementierte Methoden enthalten. … können Felder oder Eigenschaften enthalten.
Eine Klasse mit abstrakten Methoden muss als abstrakte Klasse gekennzeichnet werden.
Einführung in VB 19.02.09Seite 65
BeispielPublic MustInherit Class clsGrafik Public MustOverride Function GetInformation() As StringEnd Class
Public Class clsRechteck Inherits clsGrafik
Public OverRides Function GetInformation() As String Dim ausgabe As String
ausgabe = MyBase.GetInformation ausgabe = ausgabe + vbCrLf ausgabe = ausgabe + "Breite: " + breite.ToString ausgabe = ausgabe + ", Hoehe: " + hoehe.ToString Return ausgabe End FunctionEnd Class
Einführung in VB 19.02.09Seite 66
Schnittstellen (Interface) ... sind Verträge über eine bestimmte Form. ... ist ähnlich wie eine Klasse aufgebaut. ... enthalten
…kein End oder Anweisungen. … keine implementierten Methoden. … keine Felder.
… besitzen keine Konstruktoren. ... benötigen keine Modifikatoren für die Sichtbarkeit. Sie sind immer
öffentlich. Klassen können beliebig viele Schnittstellen einbinden. … können von anderen Schnittstellen erben.
Einführung in VB 19.02.09Seite 67
Deklaration der Schnittstelle
Interface IGrafik Property PositionX() As Long Property PositionY() As Long
Function GetInformation() As String Function Verschieben(ByVal versatzX As Integer, ByVal versatzY As Integer) As LongEnd Interface
Interface-Namen sollten mit einem großen I beginnen.
Einführung in VB 19.02.09Seite 68
Schnittstelle implementierenPublic Class clsRechteck Implements IGrafik
Function GetInformation() As String Implements IGrafik.GetInformation Dim ausgabe As String
... Return ausgabe End Function
Public Property PositionX1() As Long Implements IGrafik.PositionX Get End Get Set(ByVal value As Long) End Set End PropertyEnd Class
Einführung in VB 19.02.09Seite 69
Eigenen Namensraum erstellen
Imports SystemImports System.MathImports System.Console
Namespace AllKonto
Interface IKonto ... End Interface
Public Class clsGirokonto...
End Class
End Namespace
Eigene Klassen und Interfaces werden in Namensräumen
gekapselt.
Einführung in VB 19.02.09Seite 70
Hinweise Jeder Klassen- oder Schnittstellen-Name kommt nur einmal in jedem
Namensraum vor. In verschiedenen Namensräumen können auch gleiche Bezeichnungen
vorkommen. Namensräume können beliebig verschachtelt werden. Die Namespace-Anweisung darf nicht innerhalb eines Moduls genutzt
werden. Der Stamm-Namespace wird über die Projekteigenschaften verändert.
Einführung in VB 19.02.09Seite 71
Klassenbibliotheken erstellen Öffnen Sie die installierte Visual Basic 2008 Express Edition auf den
Schulungsrechner. Klicken Sie im Bereich Zuletzt geöffnete Projekte: auf den Textlink
Erstellen: Projekt. Im Dialogfenster Neues Projekt
... wählen Sie die Vorlage Klassenbibliothek aus. ... geben in das Textfeld Name eine selbsterklärende Bezeichnung
ein. ... klicken Sie zum Schluss auf die Schaltfläche OK.
In dem Projekt werden nur die benötigten Klassen und Schnittstellen definiert. Die verschiedenen Klassen können in Namensräumen zusammengefasst werden.
Einführung in VB 19.02.09Seite 72
Klassenbibliotheken enthalten ... die benötigten Klassen. ... definieren Schnittstellen. Die verschiedenen Klassen können in Namensräumen
zusammengefasst werden. Die Klassen sind in der Bibliothek öffentlich.
Einführung in VB 19.02.09Seite 73
DLL erzeugen Voraussetzung: Projekt vom Typ Klassenbibliothek. Klicken Sie auf Erstellen – [Name] erstellen. In dem Projektverzeichnis bin / Release wird eine Datei mit der
Endung .dll abgelegt.
Einführung in VB 19.02.09Seite 74
Verweis auf die DLL Erstellen Sie ein neues Projekt. Klicken Sie auf das Menü Projekt – Projekt-Verweis hinzufügen. Mit Hilfe der Registerkarte Durchsuchen wählen Sie die gewünschte
DLL aus. Anschließend wird die DLL mit Hilfe von Imports in die VB-Datei
eingebunden.
Einführung in VB 19.02.09Seite 75
Schnittstelle implementierenPublic Class clsRechteck Implements IGrafik
Function GetInformation() As String Implements IGrafik.GetInformation Dim ausgabe As String
... Return ausgabe End Function
Public Property PositionX1() As Long Implements IGrafik.PositionX Get End Get Set(ByVal value As Long) End Set End PropertyEnd Class